返回顶部
首页 > 资讯 > 前端开发 > html >CSS阴影动画优化的方法
  • 627
分享到

CSS阴影动画优化的方法

2024-04-02 19:04:59 627人浏览 独家记忆
摘要

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

这篇文章主要介绍了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阴影动画优化的方法”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注编程网html频道。

--结束END--

本文标题: CSS阴影动画优化的方法

本文链接: https://lsjlt.com/news/89417.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • CSS阴影动画优化的方法
    这篇文章主要介绍了CSS阴影动画优化的方法的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇CSS阴影动画优化的方法文章都会有所收获,下面我们一起来看看吧。   box-shao...
    99+
    2024-04-02
  • 如何在CSS中优化阴影动画
    这期内容当中小编将会给大家带来有关如何在CSS中优化阴影动画,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。css的三种引入方式1.行内样式,最直接最简单的一种,直接对HTML标签使用style="...
    99+
    2023-06-08
  • css阴影的实现方法
    这篇文章给大家分享的是有关css阴影的实现方法的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。在css中,可以使用box-shadow属性来设置阴影,语法“box-shadow:X轴 Y轴 大小 颜色 inset”...
    99+
    2023-06-14
  • css去掉阴影的方法
    这篇文章主要介绍了css去掉阴影的方法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。什么是csscss是一种用来表现HTML或XML等文件样式的计算机语言,主要是用来设计网页...
    99+
    2023-06-14
  • css中增加阴影的方法
    这篇文章给大家分享的是有关css中增加阴影的方法的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。css增加阴影的方法:1、使用“box-shadow”属性向框添加一个或多个阴影;2、通过“text-shadow”属...
    99+
    2023-06-15
  • css阴影效果的实现方法
    这篇文章主要为大家展示了css阴影效果的实现方法,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带大家一起来研究并学习一下“css阴影效果的实现方法”这篇文章吧。css是什么意思css是一种用来表现HTML或XML等文件样式的...
    99+
    2023-06-06
  • css阴影边框的设置方法
    这篇“css阴影边框的设置方法”除了程序员外大部分人都不太理解,今天小编为了让大家更加理解“css阴影边框的设置方法”,给大家总结了以下内容,具有一定借鉴价值,内容详细步骤清晰,细节处理妥当,希望大家通过这篇文章有所收获,下面让我们一起来看...
    99+
    2023-06-06
  • css实现阴影效果的方法
    这篇文章主要介绍了css实现阴影效果的方法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。方法:1、使用text-shadow属性,语法“text-shadow: 水平阴影 垂...
    99+
    2023-06-14
  • css设置边框阴影的方法
    小编给大家分享一下css设置边框阴影的方法,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!css中可用box-shadow属性设置边框阴影;该属性向边框添加一个或多个阴影,可设置阴影的像素长度,宽度、模糊距离和颜色;语法“b...
    99+
    2023-06-14
  • 利用CSS实现元素的阴影效果的方法
    利用CSS实现元素的阴影效果的方法,需要具体代码示例在网页设计中,为元素添加阴影效果能够使页面更加生动、立体。利用CSS,我们可以通过简单的代码实现各种不同的阴影效果。本文将为大家介绍几种常见的实现元素阴影效果的方法,并给出具体的代码示例。...
    99+
    2023-11-21
    阴影效果 CSS阴影 元素阴影
  • CSS渐变、阴影和滤镜方法是什么
    本篇内容介绍了“CSS渐变、阴影和滤镜方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、初识 C...
    99+
    2024-04-02
  • WebGL中three.js怎么实现物体的阴影动画效果
    小编给大家分享一下WebGL中three.js怎么实现物体的阴影动画效果,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!实现物体的...
    99+
    2024-04-02
  • 利用CSS实现元素的边框阴影效果的方法
    利用CSS实现元素的边框阴影效果的方法,需要具体代码示例近年来,网页设计越来越重视用户体验,目标是尽可能提供更真实、更有层次感的页面效果。元素阴影效果就是其中之一,它能够给页面增添一种立体的感觉,使得元素更加突出和吸引人。本文将介绍如何利用...
    99+
    2023-11-21
    CSS 边框 阴影效果
  • css设置边框阴影的语法是什么
    这篇文章主要介绍了css设置边框阴影的语法是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇css设置边框阴影的语法是什么文章都会有所收获,下面我们一起来看看吧。边框阴影(box-shadow)的基本语法:b...
    99+
    2023-07-04
  • CSS 动画属性优化技巧:animation 和 transition
    CSS 动画属性优化技巧:animation 和 transition引言:随着 Web 技术的不断发展,CSS 动画成为了网页设计和开发中非常重要的一部分。在过去,开发者通常使用 JavaScript 来实现动画效果,但现在通过 CSS ...
    99+
    2023-10-24
    动画 优化 属性
  • Dreamweaver中box shadow添加阴影的方法
    这篇文章主要介绍Dreamweaver中box shadow添加阴影的方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Dreamweaver中box shadow添加阴影的方法打开Dreamweaver软件,ctr...
    99+
    2023-06-08
  • iOS16图标文字阴影如何去掉?分享阴影不显示的方法!
    更新到iOS16正式版的iPhone用户,发现继续使用自己喜欢的浅色壁纸时,每个APP图标下方文字都出现了阴影。 如上图中所示,iOS16的图标文字阴影,应该是苹果开发为了在浅色背景下凸出APP名称而设计的。但部分iPhone用户纷纷表示...
    99+
    2023-09-12
    iphone ui ios
  • R的ggplot2画图,去除灰色阴影和网格的方式
    使用代码 + theme_bw() + theme(panel.grid.major=element_line(colour=NA), panel.backgro...
    99+
    2024-04-02
  • Android实现图片阴影效果的方法
    本文实例介绍了Android实现图片阴影效果,设置画布颜色,图像倾斜效果,图片阴影效果的方法,采用canvas.save(Canvas.MATRIX_SAVE_FLAG);来实...
    99+
    2022-06-06
    方法 图片 Android
  • css3中阴影的表示方法有哪些
    这篇文章主要介绍“css3中阴影的表示方法有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“css3中阴影的表示方法有哪些”文章能帮助大家解决问题。 ...
    99+
    2024-04-02
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作