我的编程空间,编程开发者的网络收藏夹
学习永远不晚

CSS阴影动画优化的方法

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

CSS阴影动画优化的方法

这篇文章主要介绍了CSS阴影动画优化的方法的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇CSS阴影动画优化的方法文章都会有所收获,下面我们一起来看看吧。

  box-shaodw 在我们的工作中使用以及越来越多,伴随阴影的动画或多或少都有一点。假设,我们有下面这样一个盒子:

  div {

  width: 100px;

  height: 100px;

  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);

  }

  希望 hover 的时候,盒阴影从 box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3) 过渡到 box-shadow: 0 5px 15px rgba(0, 0, 0, 0.3)。

  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3) --> box-shadow: 0 5px 15px rgba(0, 0, 0, 0.3)

  OK,最简单的方法当然是:

  div:hover {

  width: 100px;

  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.3);

  因为过渡动画是在两个不同的盒阴影状态在发生,所以在过渡动画的时间内,浏览器会不断的重绘盒阴影。而又由于阴影属于耗性能样式,所以这种动画给人的感觉多少有些卡顿。

  这里有一个小技巧可以优化这种情况下的阴影动画。

  使用伪元素及透明度进行优化

  使用伪元素及透明度进行优化,我们给上述元素添加一个 before 伪元素,大小与父 div 一致,并且提前给这个元素添加好所需要的最终的盒阴影状态,但是元素的透明度为 0。

  div {

  position: relative;

  width: 100px;

  height: 100px;

  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);

  }

  div::before {

  content: "";

  position: absolute;

  top: 0;

  left: 0;

  width: 100%;

  height: 100%;

  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.3);

  opacity: 0;

  }

  然后,在 hover 的时候,我们只需要将伪元素的透明度从 0 设置为 1 即可。

  div:hover::before {

  opacity: 1;

  }

  这样做的好处是,实际在进行的阴影变化,其实只是透明度的变化,而没有对阴影进行不断的重绘,有效的提升了阴影动画的流畅程度,让它看起来更加丝滑。

  为什么对透明度 opacity 进行动画要比对 box-shadow 进行动画性能更好呢?可以看看这里这张表格,列举了不同属性变换对页面重排、重绘的影响:

  存在的问题,另外一种方案

  原文中上述这个方案其实并不算太完美,因为最终的效果是两个阴影的叠加效果,可能会在整体的感觉上阴影颜色更深了一点。

  所以需要对最终状态的阴影进行微调一下,削弱一点效果,尽量让两个阴影的叠加效果与单一一个阴影效果相近。

  当然,我们可以再对上述方案进行优化,我们再使用一个 ::after 伪元素,::after 伪元素设置为初始状态且透明度为1,::before 伪元素设置为末尾状态且透明度为0:

  div {

  position: relative;

  width: 100px;

  height: 100px;

  }

  div::before {

  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.3);

  opacity: 0;

  }

  div::after {

  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);

  }

  实际 hover 的时候,对两个伪元素进行一显一隐,这样最终的效果只有一个阴影效果,没有阴影的叠加,与直接对阴影进行过渡变化效果一致:

  div:hover::before {

  opacity: 1;

  }

  div:hover::after {

  opacity: 0;

  }

关于“CSS阴影动画优化的方法”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“CSS阴影动画优化的方法”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注编程网行业资讯频道。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

CSS阴影动画优化的方法

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

如何在CSS中优化阴影动画

这期内容当中小编将会给大家带来有关如何在CSS中优化阴影动画,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。css的三种引入方式1.行内样式,最直接最简单的一种,直接对HTML标签使用style=""。2.
2023-06-08

css阴影的实现方法

这篇文章给大家分享的是有关css阴影的实现方法的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。在css中,可以使用box-shadow属性来设置阴影,语法“box-shadow:X轴 Y轴 大小 颜色 inset”
2023-06-14

css去掉阴影的方法

这篇文章主要介绍了css去掉阴影的方法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。什么是csscss是一种用来表现HTML或XML等文件样式的计算机语言,主要是用来设计网页
2023-06-14

css中增加阴影的方法

这篇文章给大家分享的是有关css中增加阴影的方法的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。css增加阴影的方法:1、使用“box-shadow”属性向框添加一个或多个阴影;2、通过“text-shadow”属
2023-06-15

css设置边框阴影的方法

小编给大家分享一下css设置边框阴影的方法,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!css中可用box-shadow属性设置边框阴影;该属性向边框添加一个或多个阴影,可设置阴影的像素长度,宽度、模糊距离和颜色;语法“b
2023-06-14

css实现阴影效果的方法

这篇文章主要介绍了css实现阴影效果的方法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。方法:1、使用text-shadow属性,语法“text-shadow: 水平阴影 垂
2023-06-14

css阴影边框的设置方法

这篇“css阴影边框的设置方法”除了程序员外大部分人都不太理解,今天小编为了让大家更加理解“css阴影边框的设置方法”,给大家总结了以下内容,具有一定借鉴价值,内容详细步骤清晰,细节处理妥当,希望大家通过这篇文章有所收获,下面让我们一起来看
2023-06-06

css阴影效果的实现方法

这篇文章主要为大家展示了css阴影效果的实现方法,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带大家一起来研究并学习一下“css阴影效果的实现方法”这篇文章吧。css是什么意思css是一种用来表现HTML或XML等文件样式的
2023-06-06

利用CSS实现元素的阴影效果的方法

利用CSS实现元素的阴影效果的方法,需要具体代码示例在网页设计中,为元素添加阴影效果能够使页面更加生动、立体。利用CSS,我们可以通过简单的代码实现各种不同的阴影效果。本文将为大家介绍几种常见的实现元素阴影效果的方法,并给出具体的代码示例。
利用CSS实现元素的阴影效果的方法
2023-11-21

利用CSS实现元素的边框阴影效果的方法

利用CSS实现元素的边框阴影效果的方法,需要具体代码示例近年来,网页设计越来越重视用户体验,目标是尽可能提供更真实、更有层次感的页面效果。元素阴影效果就是其中之一,它能够给页面增添一种立体的感觉,使得元素更加突出和吸引人。本文将介绍如何利用
利用CSS实现元素的边框阴影效果的方法
2023-11-21

css设置显示隐藏动画的方法

小编给大家分享一下css设置显示隐藏动画的方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!css设置显示隐藏动画的方法:首先创建一个HTML示例文件;然后创建一
2023-06-14

利用CSS实现鼠标悬停时的阴影特效的技巧和方法

在网页设计中,鼠标悬停效果是常见的交互方式之一。通过让元素在鼠标悬停时显示特定的效果,可以增加用户的体验和网站的吸引力。其中,利用CSS实现鼠标悬停时的阴影特效是一种常用且简单的方法。本文将介绍该技巧的实现方法,并给出具体的代码示例。一、简
2023-10-21

CSS实现加载动画效果的技巧和方法

随着互联网的发展,加载速度成为了用户体验的重要指标之一。为了提升页面加载时的用户体验,我们通常会使用加载动画效果来增加页面的互动性和吸引力。而CSS作为前端开发中的重要技术之一,提供了许多实现加载动画效果的技巧和方法。本文将介绍几种常见的C
2023-10-21

CSS实现文字动画效果的方法和技巧

在网页设计与开发中,文字动画效果能够为页面增添活力和趣味性,吸引用户的眼球,提升用户体验。而CSS是实现文字动画效果的重要工具之一。本文将介绍一些常用的CSS属性与技巧,帮助你实现各种各样的文字动画效果。一、基础动画属性transition
2023-10-21

mysql自动优化的方法是什么

MySQL自动优化的方法主要包括使用MySQL的自动优化器和执行自动优化工具。MySQL的自动优化器:MySQL自带了一个优化器,它可以根据表的统计信息和查询的情况自动选择最优的执行计划。执行自动优化工具:有一些第三方工具可以帮助MySQL
mysql自动优化的方法是什么
2024-04-22

android启动优化的方法有哪些

Android启动优化的方法有以下几种:1. 减少启动时间:使用冷启动、热启动和温启动等技术,减少应用程序启动时间。2. 延迟加载:将一些资源的加载延迟到应用程序需要时再加载,避免启动时加载过多的资源。3. 异步加载:使用异步加载技术,将耗
2023-08-08

使用Golang和FFmpeg实现视频画质优化的方法

要使用Golang和FFmpeg来实现视频画质优化,你可以使用FFmpeg的命令行工具来进行视频处理,并在Golang中调用这些命令行工具。首先,确保你已经安装了FFmpeg。然后,可以使用以下代码来调用FFmpeg工具来进行视频画质优化:
2023-10-08

CSS实现标题文字动画效果的方法和技巧

在网页设计和开发中,动画效果可以提升用户体验,增加页面的吸引力和活力。标题文字动画效果是一种常见的设计手法,它可以让页面的标题更加生动和有趣。本文将介绍一些CSS实现标题文字动画效果的方法和技巧,并提供具体的代码示例。渐变动画效果渐变动画效
2023-10-21

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录