javascript怎么实现魔方效果
导读:收集整理的这篇文章主要介绍了javascript怎么实现魔方效果,觉得挺不错的,现在分享给大家,也给大家做个参考。javascript实现魔方效果的方法:1、创建一个HTML文件;2、创建需要的div块;3、通过css和js代码“for(V...
收集整理的这篇文章主要介绍了javascript怎么实现魔方效果,觉得挺不错的,现在分享给大家,也给大家做个参考。javascript实现魔方效果的方法:1、创建一个HTML文件;2、创建需要的div块;3、通过css和js代码“for(VAR n = 0; n arr.length; n++){ ...} ”实现魔方效果即可。
本文操作环境:windows7系统、javascript1.8.5版、Dell G3电脑。
javascript怎么实现魔方效果?
实现效果:
魔方动态转换,同时每个面里的每个块都能进行动态变换。
实现代码:
!DOCTYPE html> html> head> meta charset="UTF-8"> tITle> 魔方/title> style type="text/css"> *{ margin: 0; padding: 0; } body{ width: 100%; height: 100%; background: radial-gradient(#fff,pink); } .container{ width: 300px; height: 300px; /* border:1px solid #000; */ margin:150px auto; perspective: 20000px; } .box{ width: 300px; height: 300px; border:1px solid transparent; box-sizing: border-box; position:relative; transform-style: PReserve-3d; /*transform: rotateX(45deg) rotateY(45deg); */ animation: rotate 10s linear infinite; } /*@keyframes ro{ 0%{ transform:rotateX(0deg) rotateY(0deg); } 100%{ transform: rotateX(360deg) rotateY(360deg); } } */ @keyframes rotate{ 100%{ transform:rotatex(360deg) rotatey(360deg) rotatez(360deg); } } .box-page{ width: 300px; height: 300px; position: absolute; box-sizing: border-box; transform-style: preserve-3d; } .top{ /*background-color: red; */ transform: translateZ(150px); } .bottom{ /*background-color: pink; */ transform: translateZ(-150px) rotateX(180deg); } .left{ /*background-color: orange; */ transform: translatex(-150px) rotateY(-90deg); } .right{ /*background-color: green; */ transform: translateX(150px) rotateY(90deg); } .before{ /*background-color: purple; */ transform: translateY(150px) rotateX(-90deg); } .after{ /*background-color: blue; */ transform: translateY(-150px) rotateX(90deg); } /* .box-page div:nth-child(1){ animation: a1 4.5s ease-in 0.5s; } .box-page div:nth-child(2){ animation: a1 4.5s ease-in 1s; } .box-page div:nth-child(3){ animation: a1 4.5s ease-in 1.5s; } .box-page div:nth-child(4){ animation: a1 4.5s ease-in 2s; } .box-page div:nth-child(5){ animation: a1 4.5s ease-in 2.5s; } .box-page div:nth-child(6){ animation: a1 4.5s ease-in 3s; } .box-page div:nth-child(7){ animation: a1 4.5s ease-in 3.5s; } .box-page div:nth-child(8){ animation: a1 4.5s ease-in 4s; } .box-page div:nth-child(9){ animation: a1 4.5s ease-in 4.5s; } @keyframes a1{ 0%{ transform: translateZ(0px) scale(0) rotateZ(0deg); } 20%{ transform: translateZ(300px) scale(0) rotateZ(720deg); } 90%{ transform: translateZ(300px) scale(0) rotateZ(720deg); } 100%{ transform: translateZ(0px) scale(0) rotateZ(0deg); } } */ .box-page div:First-child,.box-page div:nth-child(3),.box-page div:nth-child(5),.box-page div:nth-child(7),.box-page div:nth-child(9){ transform: rotateY(0deg); animation: rotatey 6s linear infinite; } @keyframes rotatey{ 20%{ transform: rotateY(0deg); background-size: 300px 300px; } 40%{ transform: rotateY(540deg); background-Size: 100px 100px; } 60%{ transform: rotateY(540deg); background-size: 100px 100px; } 80%{ transform: rotateY(0deg); background-size:300px 300px; } } .box-page div:nth-child(2),.box-page div:nth-child(4),.box-page div:nth-child(6),.box-page div:nth-child(8) { transform: rotateX(0deg); animation: rotatex 6s linear infinite; } @keyframes rotatex{ 20%{ transform: rotateX(0deg); background-size: 300px 300px; } 40%{ transform: rotateX(540deg); background-size: 100px 100px; } 60%{ transform: rotateX(540deg); background-size: 100px 100px; } 80%{ transform: rotateX(0deg); background-size: 300px 300px; } } /style> /head> body> div class="container"> div class="box"> div class="top box-page"> /div> div class="bottom box-page"> /div> div class="left box-page"> /div> div class="right box-page"> /div> div class="before box-page"> /div> div class="after box-page"> /div> /div> /div> script type="text/javascript"> var arr=document.querySelectorAll(".box> div"); for(var n = 0; n arr.length; n++){ //行遍历 for(var i=0; i3; i++){ //列遍历 for(var j=0; j3; j++){ var divs=document.createElement("div"); divs.style.cssText="width:100px; height:100px; border:2px solid #fff; box-sizing:border-box; position:absolute; background-image:url(imgs/a"+n+".jpg); background-size:300px 300px; " ; arr[n].appendChild(divs); divs.style.left=j*100+"px"; divs.style.top=i*100+"px"; divs.style.backgroundPositionX=-j*100+"px"; divs.style.backgroundPositionY=-i*100+"px"; } } } /script> /body> /html>
推荐学习:《javascript基础教程》
以上就是javascript怎么实现魔方效果的详细内容,更多请关注其它相关文章!
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: javascript怎么实现魔方效果
本文地址: https://pptw.com/jishu/592959.html