25 心形按钮

效果演示

14-心形按钮.gif

实现了一个心形的心形图案,当用户点击图案时,图案会旋转并缩小,同时背景颜色会变成白色。

Code

<div class="love"><input id="switch" type="checkbox"><label class="love-heart" for="switch"><i class="left"></i><i class="right"></i><i class="bottom"></i><div class="round"></div></label>
</div>
body {height: 100vh;display: flex;justify-content: center;align-items: center;background-color: #212121;
}.love-heart:before,
#switch {display: none;
}.love-heart,
.love-heart::after {border-color: hsl(231deg 28% 86%);border: 1px solid;border-top-left-radius: 100px;border-top-right-radius: 100px;width: 10px;height: 8px;border-bottom: 0
}.round {position: absolute;z-index: 1;width: 8px;height: 8px;background: hsl(0deg 0% 100%);box-shadow: rgb(0 0 0 / 24%) 0px 0px 4px 0px;border-radius: 100%;left: 0px;bottom: -1px;transition: all .5s ease;animation: check-animation2 .5s forwards;
}input:checked+label .round {transform: translate(0px, 0px);animation: check-animation .5s forwards;background-color: hsl(0deg 0% 100%);
}@keyframes check-animation {0% {transform: translate(0px, 0px);}50% {transform: translate(0px, 7px);}100% {transform: translate(7px, 7px);}
}@keyframes check-animation2 {0% {transform: translate(7px, 7px);}50% {transform: translate(0px, 7px);}100% {transform: translate(0px, 0px);}
}.love-heart {box-sizing: border-box;position: relative;transform: rotate(-45deg) translate(-50%, -33px) scale(4);display: block;border-color: hsl(231deg 28% 86%);cursor: pointer;top: 0;
}input:checked+.love-heart,
input:checked+.love-heart::after,
input:checked+.love-heart .bottom {border-color: hsl(347deg 81% 61%);box-shadow: inset 6px -5px 0px 2px hsl(347deg 99% 72%);
}.love-heart::after,
.love-heart .bottom {content: "";display: block;box-sizing: border-box;position: absolute;border-color: hsl(231deg 28% 86%);
}.love-heart::after {right: -9px;transform: rotate(90deg);top: 7px;
}.love-heart .bottom {width: 11px;height: 11px;border-left: 1px solid;border-bottom: 1px solid;border-color: hsl(231deg 28% 86%);left: -1px;top: 5px;border-radius: 0px 0px 0px 5px;
}

实现思路拆分

cbody {height: 100vh; /* 设置页面高度为视口高度 */display: flex; /* 设置页面布局为弹性布局 */justify-content: center; /* 设置主轴对齐方式为居中对齐 */align-items: center; /* 设置交叉轴对齐方式为居中对齐 */background-color: #212121; /* 设置背景颜色为深灰色 */
}

这段代码设置了页面的基本样式,包括高度、布局、对齐方式和背景颜色。

.love-heart:before,
#switch {display: none; /* 隐藏元素 */
}

这段代码隐藏了 .love-heart:before#switch 两个元素。

.love-heart,
.love-heart::after {border-color: hsl(231deg 28% 86%); /* 设置边框颜色为深黄色 */border: 1px solid; /* 设置边框为实线 */border-top-left-radius: 100px; /* 设置左上角圆角半径为 100px */border-top-right-radius: 100px; /* 设置右上角圆角半径为 100px */width: 10px; /* 设置宽度为 10px */height: 8px; /* 设置高度为 8px */border-bottom: 0 /* 隐藏底部边框 */
}

这段代码设置了 .love-heart.love-heart::after 两个元素的样式,包括边框颜色、边框、圆角半径、宽度、高度和底部边框。

.round {position: absolute; /* 设置元素的定位方式为绝对定位 */z-index: 1; /* 设置元素的堆叠顺序为最高 */width: 8px; /* 设置元素的宽度为 8px */height: 8px; /* 设置元素的高度为 8px */background: hsl(0deg 0% 100%); /* 设置元素的背景颜色为白色 */box-shadow: rgb(0 0 0 / 24%) 0px 0px 4px 0px; /* 设置元素的阴影效果 */border-radius: 100%; /* 设置元素的圆角半径为 100% */left: 0px; /* 设置元素的左边距为 0px */bottom: -1px; /* 设置元素的底部边距为 -1px */transition: all.5s ease; /* 设置元素的过渡效果 */animation: check-animation2.5s forwards; /* 设置元素的动画效果 */
}

这段代码设置了 .round 元素的样式,包括定位方式、堆叠顺序、宽度、高度、背景颜色、阴影效果、圆角半径、左边距、底部边距、过渡效果和动画效果。

input:checked+label.round {transform: translate(0px, 0px); /* 移动元素 */animation: check-animation.5s forwards; /* 执行动画 */background-color: hsl(0deg 0% 100%); /* 设置背景颜色为白色 */
}

这段代码设置了 :checked 状态下的 .round 元素的样式,包括移动元素、执行动画和背景颜色。

@keyframes check-animation {0% {transform: translate(0px, 0px); /* 元素初始状态 */}50% {transform: translate(0px, 7px); /* 元素动画过程 */}100% {transform: translate(7px, 7px); /* 元素最终状态 */}
}

这段代码定义了一个名为 check-animation 的动画效果,包括元素的初始状态、动画过程和最终状态。

.love-heart {box-sizing: border-box; /* 设置盒模型为 border-box */position: relative; /* 设置定位为相对定位 */transform: rotate(-45deg) translate(-50%, -33px) scale(4); /* 旋转 -45 度,平移 -50% -33px,缩放 4 倍 */display: block; /* 设置显示为块级元素 */border-color: hsl(231deg 28% 86%); /* 边框颜色 */cursor: pointer; /* 光标类型为指针 */top: 0; /* 上侧偏移量为 0 */
}

这段代码设置了 .love-heart 元素的样式,包括盒模型、定位、旋转、缩放、显示、边框颜色、光标类型和上侧偏移量。

input:checked+.love-heart,
input:checked+.love-heart::after,
input:checked+.love-heart.bottom {border-color: hsl(347deg 81% 61%); /* 边框颜色 */box-shadow: inset 6px -5px 0px 2px hsl(347deg 99% 72%); /* 阴影效果 */
}

这段代码设置了 :checked 状态下的 .love-heart 元素和 .love-heart::after 元素的样式,包括边框颜色和阴影效果。

.love-heart::after,
.love-heart.bottom {content: ""; /* 内容为空 */display: block; /* 显示为块级元素 */box-sizing: border-box; /* 设置盒模型为 border-box */position: absolute; /* 定位为绝对定位 */border-color: hsl(231deg 28% 86%); /* 边框颜色 */
}

这段代码设置了 .love-heart::after.love-heart.bottom 元素的样式,包括内容、显示方式、盒模型、定位、边框颜色。

.love-heart::after {right: -9px; /* 右侧偏移量 */transform: rotate(90deg); /* 旋转 90 度 */top: 7px; /* 上侧偏移量 */
}

这段代码设置了 .love-heart::after 元素的样式,包括右侧偏移量、旋转角度和上侧偏移量。

.love-heart.bottom {width: 11px; /* 宽度为 11px */height: 11px; /* 高度为 11px */border-left: 1px solid; /* 左侧边框为实线 */border-bottom: 1px solid; /* 下侧边框为实线 */border-color: hsl(231deg 28% 86%); /* 边框颜色 */left: -1px; /* 左侧偏移量 */top: 5px; /* 上侧偏移量 */border-radius: 0px 0px 0px 5px; /* 左上角圆角半径为 0px,右上角圆角半径为 5px */
}

这段代码设置了 .love-heart.bottom 元素的样式,包括宽度、高度、左侧边框、下侧边框、边框颜色、左侧偏移量、上侧偏移量和圆角半径。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/233940.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Pytorch种torch.cat与torch.stack的区别

torch.cat 和 torch.stack 是 PyTorch 中用于拼接张量的两个不同的函数&#xff0c;它们的主要区别在于拼接的方式和创建的维度。 torch.cat&#xff1a; 拼接方式&#xff1a; torch.cat 是按照给定的维度&#xff08;dim 参数&#xff09;将多个张量沿着该维度拼接。在拼接的…

Django Web框架

1、创建PyCharm项目 2、安装框架 pip install django4.2.0 3、查看安装的包列表 4、使用命令创建django项目 django-admin startproject web 5、目录结构 6、运行 cd web python manage.py runserver7、初始化后台登录的用户名密码 执行数据库迁移生成数据表 python man…

代码随想录刷题题Day29

刷题的第二十九天&#xff0c;希望自己能够不断坚持下去&#xff0c;迎来蜕变。&#x1f600;&#x1f600;&#x1f600; 刷题语言&#xff1a;C Day29 任务 ● 01背包问题&#xff0c;你该了解这些&#xff01; ● 01背包问题&#xff0c;你该了解这些&#xff01; 滚动数组 …

自动驾驶轨迹预测

目录 神经网络轨迹预测综述&#xff1a; 比较新的轨迹预测网络 Uber&#xff1a;LaneRCNN[5] Google&#xff1a;VectorNet[6] Huawei&#xff1a;HOME[7] Waymo&#xff1a;TNT[8] Aptive&#xff1a;Covernet[9] NEC&#xff1a;R2P2[10] 商汤&#xff1a;TPNet[11]…

【还不了解 Dockerfile 的同学不是好测试人】

近年来 Docker 非常火&#xff0c;想要玩好 Docker 的话 Dockerfile 是绕不开的&#xff0c;这就好比想要玩好 Linux 服务器绕不开 shell 道理是一样的。 今天我们就来聊一聊 Dockerfile 怎么写&#xff0c;那些指令到底是什么意思。 前言 一、先来看一个简单的 Dockerfile #这…

【EAI 005】EmbodiedGPT:通过具身思维链进行视觉语言预训练的具身智能大模型

论文描述&#xff1a;EmbodiedGPT: Vision-Language Pre-Training via Embodied Chain of Thought 论文作者&#xff1a;Yao Mu, Qinglong Zhang, Mengkang Hu, Wenhai Wang, Mingyu Ding, Jun Jin, Bin Wang, Jifeng Dai, Yu Qiao, Ping Luo 作者单位&#xff1a;The Universi…

Lumerical Monitors------ Global properties

Lumerical Monitors------ Global properties Global properties 全局属性 Global properties 全局属性 在 Lumerical 中&#xff0c;这里以 FDTD 工程文件举例&#xff0c;所有的 monitors 都可以通过上方选项卡中的 monitor 标签页添加。 注意上面有一个 Global properties…

R语言(12):绘图

12.1 创建图形 12.1.1 plot函数 plot(c(1,2,3),c(1,2,4)) plot(c(1,2,3),c(1,2,4),"b") plot(c(-3,3),c(-1,5),"n",xlab "x",ylab "y")12.1.2 添加线条&#xff1a;abline()函数 x <- c(1,2,3) y <- c(1,3,8) plot(x,y) lm…

【PostgreSQL】在DBeaver中实现序列、函数、视图、触发器设计

【PostgreSQL】在DBeaver中实现序列、函数、触发器、视图设计 基本配置一、序列1.1、序列使用1.1.1、设置字段为主键&#xff0c;数据类型默认整型1.1.2、自定义序列&#xff0c;数据类型自定义 1.2、序列延申1.2.1、理论1.2.2、测试1.2.3、小结 二、函数2.1、SQL直接创建2.1.1…

【redis】Redis中的字典类型:数据结构与使用方法

文章目录 Redis中的字典类型&#xff1a;数据结构与使用方法简介如何提高哈希表性能如何使用 Redis中的字典类型&#xff1a;数据结构与使用方法 简介 Redis中的字典类型的底层实现是哈希表&#xff08;Hash Table&#xff09;。 Redis的字典使用哈希表作为底层实现&#xf…

目标检测再升级!YOLOv8模型训练和部署

YOLOv8 是 Ultralytics 开发的 YOLO&#xff08;You Only Look Once&#xff09;物体检测和图像分割模型的最新版本。YOLOv8是一种尖端的、最先进的SOTA模型&#xff0c;它建立在先前YOLO成功基础上&#xff0c;并引入了新功能和改进&#xff0c;以进一步提升性能和灵活性。它可…

【conda】conda 版本控制和环境迁移/安装conda加速工具mamba /conda常用指令/Anaconda配置

【conda】安装conda加速工具mamba /conda常用指令/Anaconda配置 0. conda 版本控制和环境迁移1. 安装conda加速工具mamba2. conda install version3. [Anaconda 镜像](https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/)使用帮助4. error deal 0. conda 版本控制和环境迁移…

福建科立讯通信 指挥调度管理平台 多处文件上传漏洞复现

0x01 产品简介 福建科立讯通信指挥调度管理平台是一个专门针对通信行业的管理平台。该产品旨在提供高效的指挥调度和管理解决方案,以帮助通信运营商或相关机构实现更好的运营效率和服务质量。该平台提供强大的指挥调度功能,可以实时监控和管理通信网络设备、维护人员和工作任…

使用开源通义千问模型(Qwen)搭建自己的大模型服务

目标 1、使用开源的大模型服务搭建属于自己的模型服务&#xff1b; 2、调优自己的大模型&#xff1b; 选型 采用通义千问模型&#xff0c;https://github.com/QwenLM/Qwen 步骤 1、下载模型文件 开源模型库&#xff1a;https://www.modelscope.cn/models mkdir -p /data/…

【MATLAB】ICEEMDAN_LSTM神经网络时序预测算法

有意向获取代码&#xff0c;请转文末观看代码获取方式~也可转原文链接获取~ 1 基本定义 ICEEMDAN-LSTM神经网络时序预测算法是一种结合了改进的完全扩展经验模态分解&#xff08;ICEEMDAN&#xff09;和长短期记忆神经网络&#xff08;LSTM&#xff09;的时间序列预测方法。 …

运动耳机怎么选?2024年运动耳机推荐,运动蓝牙耳机排行榜10强

​在现代生活中&#xff0c;音乐和运动已经成为很多人生活不可分割的一部分。运动耳机在这样的背景下变得越来越受欢迎&#xff0c;它们不仅可以在运动时提供音乐的陪伴&#xff0c;还能增加运动时的乐趣和动力。但是&#xff0c;面对市面上众多不同类型的运动耳机&#xff0c;…

springboot集成cas客户端

Background 单点登录SSO(Single Sign ON)&#xff0c;指在多个应用系统中&#xff0c;只需登录一次&#xff0c;即可在多个应用系统之间共享登录。统一身份认证CAS&#xff08;Central Authentication Service&#xff09;是SSO的开源实现&#xff0c;利用CAS实现SSO可以很大程…

TikTok时代的社交红利:用户生成内容的崛起

TikTok&#xff0c;这款短视频平台在全球范围内掀起了一场社交媒体的新浪潮。在这个数字化的时代&#xff0c;用户生成内容成为了社交平台的核心&#xff0c;而TikTok正是在这一潮流中崭露头角。本文将深入探讨TikTok时代的社交红利&#xff0c;聚焦用户生成内容的崛起&#xf…

服务器运行状况监控工具

服务器运行状况监视提供了每个服务器状态和性能的广泛概述&#xff0c;通过监控服务器指标&#xff0c;如 CPU 使用率、内存消耗、I/O、磁盘使用率、进程等&#xff0c;服务器运行状况监控可以避免服务器停机。 服务器性能监控指标 服务器是网络中最重要的组件之一&#xff0…

大创项目推荐 深度学习图像修复算法 - opencv python 机器视觉

文章目录 0 前言2 什么是图像内容填充修复3 原理分析3.1 第一步&#xff1a;将图像理解为一个概率分布的样本3.2 补全图像 3.3 快速生成假图像3.4 生成对抗网络(Generative Adversarial Net, GAN) 的架构3.5 使用G(z)生成伪图像 4 在Tensorflow上构建DCGANs最后 0 前言 &#…