JavaScript制作3D旋轉(zhuǎn)相冊(cè)
更新時(shí)間:2020年08月02日 10:06:59 作者:中二程序猿
這篇文章主要為大家詳細(xì)介紹了JavaScript制作3D旋轉(zhuǎn)相冊(cè),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
本文實(shí)例為大家分享了js 3D旋轉(zhuǎn)相冊(cè)展示的具體代碼,供大家參考,具體內(nèi)容如下
源代碼:
<!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>
效果圖:

可用鼠標(biāo)拖動(dòng)。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
您可能感興趣的文章:
- JS相冊(cè)圖片抖動(dòng)放大展示效果的示例代碼
- javascript實(shí)現(xiàn)QQ空間相冊(cè)展示源碼
- JavaScript+CSS相冊(cè)特效實(shí)例代碼
- JS實(shí)現(xiàn)的相冊(cè)圖片左右滾動(dòng)完整實(shí)例
- JavaScript實(shí)現(xiàn)相冊(cè)彈窗功能(zepto.js)
- js實(shí)現(xiàn)有過(guò)渡漸變效果的圖片輪播相冊(cè)(兼容IE,ff)
- 原生js實(shí)現(xiàn)移動(dòng)開(kāi)發(fā)輪播圖、相冊(cè)滑動(dòng)特效
- JavaScript實(shí)現(xiàn)一個(gè)前端會(huì)魔法的旋轉(zhuǎn)魔方相冊(cè)
相關(guān)文章
基于JS實(shí)現(xiàn)前端壓縮上傳圖片的實(shí)例代碼
這篇文章主要介紹了基于JS實(shí)現(xiàn)前端壓縮上傳圖片的實(shí)例代碼,代碼簡(jiǎn)單易懂,非常不錯(cuò),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下2019-05-05
微信公眾號(hào)生成新浪短網(wǎng)址的實(shí)現(xiàn)(快速生成)
這篇文章主要介紹了微信公眾號(hào)生成新浪短網(wǎng)址的實(shí)現(xiàn)(快速生成),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08
4種JavaScript實(shí)現(xiàn)簡(jiǎn)單tab選項(xiàng)卡切換的方法
這篇文章主要介紹了4種JavaScript實(shí)現(xiàn)簡(jiǎn)單tab選項(xiàng)卡切換的方法,感興趣的小伙伴們可以參考一下2016-01-01
JavaScript實(shí)現(xiàn)文件下載的超簡(jiǎn)單兩種方式分享
這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)文件下載的超簡(jiǎn)單兩種方式,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-12-12

