DNA
双螺旋
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
实现分解
1 | <div class="helix"> |
主要布局样式
1 | /* 光点主体 */ |
- 注意事项
1-36 旋转间隔 10deg, 第36个 li 旋转角度是 360deg, 第37个 li 旋转角度应该是 370deg,
为什么现在样式布局,第37个 li 旋转角度是 410deg ?答案:错位,偏移量
主要动画样式
1 | /*白色、蓝色光点交替时的遮罩问题*/ |
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
对比布局
1 | <div class="helix"> |
优缺点分析
1 | .helix ul.d{ |
- 对比布局,上面这一段样式,可以减少第37-72个 li 的旋转,颜色,延迟样式,减少几百行样式代码。
- 错位,偏移量通过调整 transform:translate(-50%, -50%) rotateZ(30deg) 即可实现。无需修改第37-72个 li 的旋转角度。
但是也发现了一个问题:光点交替时候的遮罩问题
关于CSS3 动画
值 | 描述 |
---|---|
animation: | name duration timing-function delay iteration-count direction; |
name | 选择器的 keyframe 名称 |
duration | 完成动画所花费的时间,以秒或毫秒计 |
timing-function | 动画的速度曲线 |
delay | 动画开始之前的延迟 |
iteration-count | 动画应该播放的次数 |
direction | 是否应该轮流反向播放动画 |
值 | 描述 |
---|---|
transform: | none transform-functions |
matrix(n,n,n,n,n,n) | 定义 2D 转换,使用六个值的矩阵 |
translate(x,y) | 2D 位移 |
translate(x,y,z) | 3D 位移 |
scale(x,y) | 2D 缩放 |
scale(x,y,z) | 3D 缩放 |
rotate(x,y) | 2D 旋转 |
rotate(x,y,z) | 3D 旋转 |
transform-origin | 改变被转换元素的位置 |
transform-style | 被嵌套元素如何在 3D 空间中显示 |
perspective | 为 3D 转换元素定义透视视图 |
perspective-origin | 规定 3D 元素的底部位置 |
backface-visibility | 元素在不面对屏幕时是否可见 |