当前位置 主页 > 网站技术 > 代码类 >

    JavaScript制作3D旋转相册

    栏目:代码类 时间:2019-10-28 18:07

    本文实例为大家分享了js 3D旋转相册展示的具体代码,供大家参考,具体内容如下

    源代码:

    <!DOCTYPE html>
    <html lang="en">
    <head>
     <meta charset="UTF-8">
     <title>Title</title>
     <style>
     *{padding:0;margin:0; font-family: "Proxima Nova","proxima-nova","Helvetica Neue",Helvetica,Arial,sans-serif !important;}
     html body{overflow: hidden;}
     body{background:#ccc;}
     .box{width:140px; height:200px; -webkit-transform-style:preserve-3d; -webkit-transform: perspective(800px) rotateY(0deg) rotateX(0deg); position:relative; margin:400px auto;}
     .box span{width:140px; height:200px; position: absolute; background:deepskyblue; font-size:20px;
      text-align: center; line-height:200px; color:white;}
     </style>
     <script>
     function r2n(n){
      return n*Math.PI/180
     }
     window.onload=function(){
      var oBox=document.getElementsByClassName('box')[0];
      var aS=document.getElementsByTagName('span');
      for(var i=0;i<aS.length;i++){
      aS[i].style.WebkitTransition='1s all ease '+(aS.length-i)*.1+'s';
      aS[i].style.WebkitTransform='rotateY('+i*360/aS.length+'deg)'+' translateZ(500px) '
      }
      var pos=[];
      var x=0;
      var y=0;
      var timer=null;
      var timer2=null;
      document.onmousedown=function(ev){
      timer=setInterval(function(){
       pos[0]=pos[2];
       pos[1]=pos[3];
       pos[2]=x;
       pos[3]=y;
      },30);
      var disx=ev.pageX-x;
      var disy=ev.pageY-y;
      document.onmousemove=function(ev){
       x=ev.pageX-disx;
       y=ev.pageY-disy;
       oBox.style.WebkitTransform=' perspective(800px)'+' rotateY('+x/3+'deg)'+'rotateX('+-y/3+'deg)';
      };
      document.onmouseup=function(){
       clearInterval(timer);
       var speedx=pos[2]-pos[0];
       var speedy=pos[3]-pos[1];
       timer2=setInterval(function(){
       x+=speedx;
       y+=speedy;
       oBox.style.WebkitTransform=' perspective(800px)'+' rotateY('+x/3+'deg)'+'rotateX('+-y/3+'deg)';
       speedx*=0.94;
       speedy*=0.94;
       if(Math.abs(speedx)<1)speedx=0;
       if(Math.abs(speedy)<1)speedy=0;
       if(speedx==0&&speedy==0){
        clearInterval(timer2)
       }
       },30);
       document.onmousemove=null;
       document.onmouseup=null;
      }
      };
      return false
     }
     </script>
    </head>
    <body>
    <div class="box">
     <span>1</span>
     <span>2</span>
     <span>3</span>
     <span>4</span>
     <span>5</span>
     <span>6</span>
     <span>7</span>
     <span>8</span>
     <span>9</span>
     <span>10</span>
     <span>11</span>
     <span>12</span>
    </div>
    </body>
    </html>

    效果图:


    可用鼠标拖动。

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持IIS7站长之家。