用HTML,CSS,JS编辑出动态立方体!

其实动态立方体用到的知识很简单,就是CSS动画加上3D的效果,这个demo对于初学CSS动画的朋友很有帮助。。。

HTML部分:

<div id="box">
    <div></div>
    <div></div>
    <div></div>
    <div></div>
    <div></div>
    <div></div>
</div>

CSS部分:

<style>
    #box{
        width: 200px;
	height: 200px;
	margin: 200px auto;
	position: relative;
				
	/*给父级设置3d空间*/
	transform-style: preserve-3d;
	/*设置景深*/
	/*perspective: 800px;*/
	transform: perspective(800px) rotateY(-60deg) rotateX(30deg);
	}
    #box div{
	width: 100%;
	height: 100%;
	border: 1px solid black;
	position: absolute;
	opacity: 0.7;
	}
			
    /*前面*/
    #box div:nth-child(1){
	background: palegreen;
	transform: translateZ(100px);
	}
    /*后面*/
    #box div:nth-child(2){
	background: palevioletred;
	transform: translateZ(-100px);
	}
    /*左面*/
    #box div:nth-child(3){
	background: plum;
	transform: translateX(-100px) rotateY(90deg);
        }
    /*右面*/
    #box div:nth-child(4){
	background: blue;
	transform: translateX(100px) rotateY(90deg);
        }
    /*上面*/
    #box div:nth-child(5){
	background: greenyellow;
	transform: translateY(-100px) rotateX(90deg);
	}
    /*下面*/
    #box div:nth-child(6){
	background: orangered;
	transform: translateY(100px) rotateX(90deg);
	}
    img{
	width: 200px;
	height: 200px;
	}
</style>

JS部分:

<script>
    //获取元素
    var odiv = document.querySelector('#box');
    var x =30;
    var y =-60;
    odiv.onmousedown = function(ev){
        var event = window.event || ev;
	var disy = event.clientX - y;
	var disx = event.clientY - x;
        document.onmousemove = function(ev){
            var event = window.event || ev;
	    //计算偏移角度
	    xs = event.clientY - disx;
	    ys = event.clientX - disy;
	    odiv.style.transform = 'perspective(800px)  rotateY('+ys+'deg) rotateX('+xs+'deg)';
	    }
	document.onmouseup = function(){
	    document.onmousemove = null;
	    }
	    return false;
	}
</script>

以上就是动态立方体的基本步骤,有些地方我已经注释过了,希望会对想要学习CSS动画的朋友有所帮助~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值