教育改变生活

标题: 一些CSS的常用套路(附demo的效果实现与源码) [打印本页]

作者: 李玮    时间: 2020-8-21 08:54
标题: 一些CSS的常用套路(附demo的效果实现与源码)
1、交错动画


有时候,我们需要给多个元素添加同一个动画,播放后,不难发现它们会一起运动,一起结束,这样就会显得很平淡无奇。那么如何将动画变得稍微有趣一点呢?很简单,既然它们都是同一时刻开始运动的,那么让它们不在同一时刻运动不就可以了吗。如何让它们不在同一时刻运动呢?注意到CSS动画有延迟(delay)这一属性。举个栗子,比如有十个元素播放十个动画,将第二个元素的动画播放时间设定为比第一个元素晚0.5秒(也就是将延迟设为0.5秒),其他元素以此类推,这样它们就会错开来,形成一种独特的视觉效果。


这就是所谓的交错动画:通过设置不同的延迟时间,达到动画交错播放的效果。本demo地址:https://codepen.io/alphardex/pen/XWWWBmQ
2、用JS分割文本
还有一种经常用到的玩法:用JS将句子或单词分割成字母,并给每个字母加上不同延时的动画,同样也很华丽。


本demo地址:https://codepen.io/alphardex/full/KKwvKGY一般我们都是从第一个元素开始交错的。但如果要从中间元素开始交错的话,就要给当前元素的延时各加上一个值,这个值就是中间元素的下标到当前元素的下标的距离(也就是下标之差的绝对值)与步长的乘积,即:delay + Math.abs(i - middle) * step,其中中间元素的下标middle = letters.filter(e => e !== "").length / 2


本demo地址:https://codepen.io/alphardex/full/eYYMYXJ所有有交错特性的动画都在这儿
3、随机粒子动画
说到随机性,我们可以实现一种更疯狂的效果:给几百个粒子添加交错动画,并且交错时间随机,位置大小也都是随机。如此一来我们就能用纯CSS模拟出下雪的效果。又到了白色相簿的季节呢~为什么你写CSS这么熟练啊?
本demo地址:https://codepen.io/alphardex/full/dyPorwJ
伪类和伪元素4、伪类


HTML元素的状态是可以动态变化的。举个栗子,当你的鼠标悬浮到一个按钮上时,按钮就会变成“悬浮”状态,这时我们就可以利用伪类:hover来选中这一状态的按钮,并对其样式进行改变。:hover是笔者最最常用的一个伪类。还有一个很常用的伪类是:nth-child,用于选中元素的某一个子元素。其他的类似:focus、:focus-within等也有一定的使用。本demo地址:https://codepen.io/alphardex/pen/pooYKVa
5、绝对定位实现多重边框
谁规定按钮只能有一套边框的?利用绝对定位和padding,我们可以给按钮做出3套大小不一的边框来,这样效果更炫了。


本demo地址:https://codepen.io/alphardex/fu


作者: 李玮    时间: 2020-8-26 17:19
有动图好评!




欢迎光临 教育改变生活 (http://bbs.goldoar.com/) Powered by Discuz! X3.2