实现按钮悬停动画

news2024/9/24 1:24:36

知识点与技巧

  • 伪元素

    使用伪元素来作为按钮悬停效果动画展示的元素

  • z-index 的使用技巧

    使用z-index属性来控制按钮和伪元素的层次关系

  • transform、transition 复习

    使用transformtransition两个属性来实现动画的展示

按钮边框动画

切换效果

在这里插入图片描述

核心代码

.btn.btn-border-pop::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: -1;
  border-radius: var(--border-radius);
  border: var(--border-size) solid var(--background-color);
  transition: top, left, right, bottom, 100ms ease-in-out;
}

/* 负数向外移动2倍,这里可以修改top、left、right、bottom属性的值从而达到不同的效果 */
.btn.btn-border-pop:hover:before,
.btn.btn-border-pop:focus::before {
  top: calc(var(--border-size) * -2);
  left: calc(var(--border-size) * -2);
  right: calc(var(--border-size) * -2);
  bottom: calc(var(--border-size) * -2);
}

按钮背景动画

切换效果

在这里插入图片描述

核心代码

/* 这里使用z-index管理按钮和伪元素的层次关系 */
.btn.btn-background-slide {
  transition: color 300ms ease-in-out;
  z-index: 1;
}

/* 伪元素的z-index设置为-1后,动画执行时就不会遮挡按钮的文字 */
.btn.btn-background-slide::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: -1;
  border-radius: var(--border-radius);
  background-color: var(--accent-color);
  transition: transform 300ms ease-in-out;
  transform: scaleX(0);
  transform-origin: left;
}

.btn.btn-background-slide:hover:before,
.btn.btn-background-slide:focus:before {
  transform: scaleX(1);
}

背景圆动画

切换效果

在这里插入图片描述

核心代码

.btn.btn-background-circle::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: -1;
  background-color: var(--background-color);
  border-radius: 50%;
  transition: transform 500ms ease-in-out;
  transform: scale(1.5);
}

.btn.btn-background-circle:hover:before,
.btn.btn-background-circle:focus:before {
  transform: scale(0);
}

.btn.btn-background-circle {
  z-index: 1;
  overflow: hidden;
  background-color: var(--accent-color);
  transition: color 500ms ease-in-out;
}

底部边线动画

切换效果

在这里插入图片描述

核心代码

.btn.btn-background-circle:hover,
.btn.btn-background-circle:focus {
  color: #fff;
}

.btn.btn-background-underline::before {
  content: "";
  position: absolute;
  top: 33px;
  left: 0;
  right: 0;
  bottom: 0;
  height: var(--border-size);
  background-color: var(--accent-color);
  transition: transform 300ms ease-in-out;
  transform: scaleX(0);
}

.btn.btn-background-underline:hover:before,
.btn.btn-background-underline:focus:before {
  transform: scaleX(1);
}

总结

使用 CSS 实现按钮动画效果的时候,我们可以使用伪元素来作为动画的执行者,然后结合使用z-indx属性来辅助管理我们按钮与动画层的显示关系,最后在结合相关的动画交互属性就可以实现自己的动画切换效果。

实例代码下载

实例代码下载

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python语言开发环境安装

视频版教程 Python3零基础7天入门实战视频教程 首先去Python官网下载Python安装包 https://www.python.org/ 目前最新版本:Python 3.11.4 直接点击下载。(建议用迅雷下载,速度快) 双击安装包进行Python安装。 勾选下 Add pytho…

3D生成式AI模型、应用与工具大全

当谈到技术炒作时,人工智能正在超越虚拟世界,吸引世界各地企业和消费者的注意力。 但人工智能可以进一步增强虚拟世界,至少在某种意义上:资产创造。 AI 有潜力扩大用于虚拟环境的 3D 资产的创建。 推荐:用 NSDT编辑器…

二叉树(堆)

堆的性质: 堆中某个节点的值总是不大于或不小于其父节点的值; 堆总是一棵完全二叉树。 大堆:任何父亲≥孩子 小堆:任何父亲≤孩子 接下来,我们要做的便是对堆进行增加和删除: 首先是增加操作&#xff0c…

【算法专题突破】滑动窗口 - 找到字符串中所有字母异位词(14)

目录 1. 题目解析 2. 算法原理 3. 代码编写 写在最后: 1. 题目解析 题目链接:438. 找到字符串中所有字母异位词 - 力扣(Leetcode) 这道题很好理解,就是找出从不同位置开始的所有异位词。 2. 算法原理 那我们该如…

下载安装python的详细步骤-2023

目录 一、介绍 二、下载 三、安装 四、测试 一、介绍 读者手册(必读)_csdn文章评分怎么看_云边的快乐猫的博客-CSDN博客 Python 是一种高级编程语言,具有简洁、易读、易学的特点。它由Guido van Rossum于1989年首次发布,并于1…

无涯教程-JavaScript - ACOTH函数

描述 ACOTH函数返回数字的反双曲余切。 语法 ACOTH (number)争论 Argument描述Required/OptionalNumberThe absolute value of Number must be greater than 1. i.e., Number must be must be less than -1 or greater than 1.Required Notes 用于计算双曲反余切的方程为-…

【第200篇原创文章】解决低于1%概率出现的芯片VPSS模块跑飞的问题

在发布SDK内测的时候,我们发现在切换视频分辨率的时候有低概率出现VPSS模块跑飞的情况,概率低于1%,试个两三百次,能出1~2次。切换视频分辨率这个功能在安防产品上也确实存在需求,网络带宽不大好的地方分辨率可以适当下…

边缘计算AI智能安防监控视频平台车辆违停算法详解与应用

随着城市车辆保有量呈现高速增长趋势,交通拥堵、违章行为也日益泛滥。因为车辆未停放在指定区域导致的车位浪费、占用/堵塞交通要道、车辆剐蹭等问题层出不穷。通过人工进行违法停车的监控,不仅让监控人员工作负荷越来越大,而且存在发现不及时…

文心一言:中文生成式对话产品

【产品介绍】 名称 文心一言上线/成立时间 2023年3月27日具体描述 文心一言(英文名:ERNIE Bot)是百度全新一代知识增强大语言模型,文心大模型家族的新成员,能够与人对话互动,回答问…

pacman下载源失败怎么办

背景 编译c程序的时候,提示链接失败,错误如下: clang-15: error: linker command failed with exit code 1 (use -v to see invocation) [24/25] Linking CXX executable samples/xxx ninja: build stopped: subcommand failed.此处不过多介…

计算机竞赛 机器视觉的试卷批改系统 - opencv python 视觉识别

文章目录 0 简介1 项目背景2 项目目的3 系统设计3.1 目标对象3.2 系统架构3.3 软件设计方案 4 图像预处理4.1 灰度二值化4.2 形态学处理4.3 算式提取4.4 倾斜校正4.5 字符分割 5 字符识别5.1 支持向量机原理5.2 基于SVM的字符识别5.3 SVM算法实现 6 算法测试7 系统实现8 最后 0…

数学实验-圆周率π的计算(Mathematica实现)

一、实验名称:圆周率π的计算 二、实验环境:机房、Mathematica 10.3软件 三、实验目的:通过各种方法在Mathematica中计算圆周率π的值, 四、实验内容及结果 1 数值积分法计算π 计算定积分的数值,就得到了的值&am…

外包干了2个月,技术退步明显。。。。。

先说一下自己的情况,大专生,18年通过校招进入武汉某软件公司,干了接近4年的功能测试,今年年初,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试…

基于SSM+Vue的理发店会员管理系统的设计与实现

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:采用JSP技术开发 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目&#x…

普中51-数码管实验

文章目录 数码管实验**静态数码管实验**动态数码管实验多位数码管简介数码管动态显示原理74HC245 和74HC138芯片介绍74HC245 芯片简介74HC138 芯片简介 代码如下: 数码管实验 如图所示: 从上图可看出,一位数码管的引脚是 10 个,…

path环境变量设置

path是一个包含多个路径的变量,用于指定系统可执行文件的搜索路径。主要作用是能够让系统快速启动一个应用程序。当用户输入一个命令时,系统会在path指定的路径中搜索可执行文件,以确定命令所对应的可执行文件位置。 如运行txt,tx…

VMware虚拟化基础操作实战(基于ESXi6.7 操作系统安装CentOS7.5)

任务要求 环境要求 1、PC终端一台(CPU 大于 8 核,内存大于8GB,Windows10 操作系统) 2、VM虚拟机(VMware workstation14 起) 3、安装在虚拟机上的操作系统(ESXi6.7 操作系统) 4、在…

Sleuth--链路追踪(二)

1 Zipkin的集成 1.1 1 ZipKin介绍 Zipkin 是 Twitter 的一个开源项目,它基于Google Dapper实现,它致力于收集服务的定时数据,以解决微服务架构中的延迟问题,包括数据的收集、存储、查找和展现。 我们可以使用它来收集各个…

InnoDB的页分裂与页合并

数据组织方式 在 InnoDB 存储引擎中,表数据都是根据主键顺序组织存放的,这种存储方式的表称为索引组织表 行数据,都是存储在聚集索引的叶子节点上的。 在 InnoDB 引擎中,数据行是记录在逻辑结构 page 页中的,而每一…

每日一博 - 闲聊 API GateWay

文章目录 概念图解小结 概念 API Gateway(API 网关)是一个在现代应用程序和服务架构中起关键作用的组件,它具有多种功能和作用,主要包括以下方面: 路由和请求分发:API 网关充当前端入口,根据请…