最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

CSS33D变换之综合运用

来源:懂视网 责编:小采 时间:2020-11-27 16:29:40
文档

CSS33D变换之综合运用

CSS33D变换之综合运用:先上效果图吧 点击'roll'按钮,会出现旋转的动画 代码如下 div#camera{ width: 500px; height: 500px; outline: 1px solid black; margin:100px auto; position: relative; perspective: 1000px; } d
推荐度:
导读CSS33D变换之综合运用:先上效果图吧 点击'roll'按钮,会出现旋转的动画 代码如下 div#camera{ width: 500px; height: 500px; outline: 1px solid black; margin:100px auto; position: relative; perspective: 1000px; } d
先上效果图吧

点击'roll'按钮,会出现旋转的动画

代码如下

    
  • 这里的 transform 的顺序很重要,如果是先 rotateY 再 translateZ , 那么 translateZ 是以rotate以后的坐标轴进行平移,这样才能达到前后左右平移的效果; 如果先 translateZ 再 rotateY , 那么所有元素都会先平移,然后在一个位置上进行旋转了!

  • changeRotateY 函数用来改变div的旋转角度,根据该元素的 eq 和传入的 count 值(按钮被点击的次数)来设置元素的 rotateY 的值。由于 遇到了动态获取 transform 值的问题 这里的函数灵活性不高,有点遗憾。 第一次点击的时候, count 为0, index() 为0的元素的 rotateY 会从0°增加到90°, index() 为1的元素的 rotateY 会从90°增加到180°,and so on; 第二次点击, count 为1, 上述值会各增加90°,完成无限旋转的效果;

  • 遇到的一个很大的问题就是转到后面的元素依旧会显示出来。 试过 background-color 和 backface-visibility:hidden 都不怎么好用,尤其是 backface-visibility , 转到90度的时候还是显示的,在90.01°时才会隐藏backface, 如果想用 backface-visibility 来隐藏后面元素的话得fine-tune, 还会引起稍微的错位问题,遂放弃;

  • 最后使用的是 z-index 来隐藏后面的元素, 动态设置转到最前面的元素的 z-index 为较大值。注意 z-index 属性不对 position 为 static 的元素起作用。 当然我们这里的div们都是 absolute ,所以就能应用得很好啦~

  • 要显示的元素的 eq 值分别为3、2、1、0,当然直接用递增的 count 变量+ switch / if else 语句也能做,但陡减可读性; 取而代之的是增加了一个递减的 reversedCount 变量,它来负责匹配每次要设置 z-index 的元素。

  • 欢迎转载,请注明出处。

    参考资料: 玩轉 CSS 3D - 原理篇

    文档

    CSS33D变换之综合运用

    CSS33D变换之综合运用:先上效果图吧 点击'roll'按钮,会出现旋转的动画 代码如下 div#camera{ width: 500px; height: 500px; outline: 1px solid black; margin:100px auto; position: relative; perspective: 1000px; } d
    推荐度:
    标签: 使用 应用 3d
    • 热门焦点

    最新推荐

    猜你喜欢

    热门推荐

    专题
    Top