先放效果图吧


不是我写出来的,也不是我找到的,我朋友找的这个东西,觉得炫酷,我研究了半天(2333)
开始正题:
页面有6个图形,5个矩形,1个圆形,5个圆形是同样的方法实现,圆形是别的方法
先说圆形,圆形通过C3动画属性就已经全部实现了


注意滚动条高度,我的鼠标是没有专门去控制页面的。
接着看矩形
矩形实现的方式是通过chrome浏览器自带的animate方法实现的,为了证实这一点,我在不同的浏览器上都做了测试
1、edge(edge只有圆形,也就是纯粹通过c3动画实现的才可以正常运行)

2、firefox(火狐浏览器也是运行不了,全是问题)

3、ie(ie11,不能运行)

4、safari(是的,你没看错,safari浏览器,整个页面只有下面这个东西)

6、搜狗(搜狗可以运行,搜狗内核是chromium)

7、欧朋(如果欧朋还是使用presto内核的话估计也是不可以,但在几年前欧朋放弃了自己的presto内核选择了谷歌的webkit,后来又和谷歌一起开发blink,也算是webkit的分支)

这是关于animate属性的一些资料

开始实现
首先将每个矩形的特点都划分出来,组成一个数组对象,如果有需要更改的,则单独列出

然后进行模板的构建

如果什么都不需要进行修改的话,就参照这个模板就行

设置边框

将存放特点的数组对象与模板进行合并加工,构造不同的样式

参考圆形,将新元素的属性构造出来

计算元素自身的大小以及在新元素构建后应该占据的大小

计算关键帧样式

计算第二条边框的关键帧样式

animate属性的配置


构造元素,样式,并进行分配

利用chrome的animate属性,实现动画

对双边框样式进行动画实现

最后将页面上的元素进行遍历,给每一个div元素都添加动画边框效果
//页面的作者和链接我不知道,我的是我朋友给我的,而且过了好久,这个是网页内部的注释,我标明一下出处(-.-)

原文:https://www.cnblogs.com/asablog/p/10878297.html