美文网首页
CSS transform属性实现旋转的四面体

CSS transform属性实现旋转的四面体

作者: 来碗鸡蛋面 | 来源:发表于2019-08-05 22:27 被阅读0次

原创声明

本文系作者辛苦码字所得,欢迎分享和转载,但请在明显位置注明作者的如下信息:
笔名:来碗鸡蛋面
简书主页:https://www.jianshu.com/u/4876275b5a73
邮箱:job_tom@foxmail.com
CSDN ID:tom_wong666

本文简单阐述了如何实现旋转的四面体效果,读者需要具备基本的HTML,CSS和JS基础知识。
一,基本概念:
1,三维坐标轴,如下图:

三维坐标
2,透视距离,如上图:
perspective:npx:透视距离为npx。
3,CSS的3D转换属性
transform:rotateX(ndeg):绕X轴旋转n度。如下图:
X轴旋转示意
transform:rotateY(ndeg):绕Y轴旋转n度。如下图:
Y轴旋转示意
transform:rotateZ(ndeg):绕Z轴旋转n度。如下图:
Z轴旋转示意
二,基本思路
用四张尺寸相同的图片以绝对定位重叠在一起,然后以4*90度旋转拼成一个四面体,接着用一个父元素包裹四张图片,旋转父元素,实现四面体的旋转。
三,代码实现
1,HTML部分,注意这里要对cs和js文件做引用,并定义好元素间的关系。
<head>
    <link rel="stylesheet" href="css/index.css">
</head>
<body>
    <section class="banner">
        <div id="stage">
            <img id="img1" src="img/01konglong.jpg"></img>
            <img id="img2" src="img/02yuer.jpg"></img>
            <img id="img3" src="img/03tuzi.jpg"></img>
            <img id="img4" src="img/04guangtou.jpg" ></img>
        </div>
    </section>
    <script src="js/index.js"></script>
 </body>

2,CSS部分,这里拼成了一个四面体,关键点见代码注释。

    .banner{
        margin-top:250px;
        margin-left:350px;
        width:960px;
        height:200px;
        perspective:300px;/*定义视距*/
    }
    .banner #stage{/*父元素*/
        position:relative;
        width:960px;
        height:200px;
        transform-style:preserve-3D;/*定义样式为3D*/
        transition:all  1s;
        transform:rotateX(0deg);/*父元素初始旋转为0度*/
    }
    .banner #stage #img1{/*图1*/
        width:960px;
        height:200px;
        position:absolute;
        transform:translateZ(100px);/*图片1前移100像素,未旋转*/
        transition:all 1s;
    }
    .banner #stage #img2{/*图2*/
        width:960px;
        height:200px;
        position:absolute;
        transition:all 1s;  
        transform:rotateX(-90deg) translateZ(100px);
        /*图片2前移100像素,X轴旋转-90度*/
    }
    .banner #stage #img3{/*图3*/
        width:960px;
        height:200px;
        position:absolute;
        transition:all 1s;  
        /*图片3前移100像素,X轴旋转-180度*/
    }
    .banner #stage #img4{/*图4*/ 
        width:960px;
        height:200px;
        position:absolute;
        transition:all 1s;  
        transform:rotateX(-270deg) translateZ(100px);
        /*图片2前移100像素,X轴旋转-270度*/
    }

3,JS部分,这里加了一个定时器,实现父元素匀速往复旋转。

"use strict"
let stage=document.getElementById("stage");
let imgs=stage.querySelectorAll(".light #stage>img");
(function(){    
    let k=90;
    setInterval((function task(){
        stage.style.transform=`rotateX(${k}deg)`;
        k+=90;
    }),1000)
})()

相关文章

  • css3 实现360度无线旋转

    使用css3 属性方法 rotate() 实现旋转 transform-origin是规定如何旋转: center...

  • CSS transform属性实现旋转的四面体

    原创声明 本文系作者辛苦码字所得,欢迎分享和转载,但请在明显位置注明作者的如下信息:笔名:来碗鸡蛋面简书主页:ht...

  • CSS3的新特性;

    CSS3 Transform 转换(制作旋转、位移、缩放等效果详解); transform 的属性包括:旋转 ro...

  • transform(变形)

    transform(变形) CSS3中可以通过transform属性修改元素的变形、旋转、缩放、倾斜特性,在CSS...

  • --- > css3-变形

    transform(变形) CSS3中可以通过transform属性修改元素的变形、旋转、缩放、倾斜特性,在CSS...

  • transform变形

    CSS3中可以通过transform属性修改元素的变形、旋转、缩放、倾斜特性,在CSS3中transform主要包...

  • 居中为什么用transform,而不是margin top/le

    首先。我们了解下transform是干嘛的。 在MDN中的官方解释:CSS transform属性允许你旋转,缩放...

  • css3-transform

    CSS3属性transform详解之(旋转:rotate,缩放:scale,倾斜:skew,移动:translat...

  • CSS3属性transform详解

    CSS3属性transform详解之(旋转:rotate,缩放:scale,倾斜:skew,移动:translat...

  • Transform&CATransform3D

    View的Transform 修改transform属性,可以实现控件的 平移/缩放和旋转 常用的函数: CATr...

网友评论

      本文标题:CSS transform属性实现旋转的四面体

      本文链接:https://www.haomeiwen.com/subject/tbbsdctx.html