JavaScript制作3D旋轉(zhuǎn)相冊
本文實例為大家分享了js 3D旋轉(zhuǎn)相冊展示的具體代碼,供大家參考,具體內(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)拖動。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
200行HTML+JavaScript實現(xiàn)年會抽獎程序
這篇文章主要為大家詳細(xì)介紹了HTML+JavaScript實現(xiàn)年會抽獎程序的200行代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-01-01
利用js實現(xiàn)可進(jìn)行時間和工作調(diào)度的任務(wù)管理器
這篇文章主要為大家詳細(xì)介紹了如何利用js實現(xiàn)一個可進(jìn)行時間和工作調(diào)度的任務(wù)管理器,文中的示例代碼簡潔易懂,有需要的小伙伴可以參考一下2023-10-10
Javascript拖拽&拖放系列文章3之細(xì)說事件對象
Javascript中的事件對象其實和.NET中繼承自EventArgs類的派生類類似,用來給事件處理程序傳遞狀態(tài)信息,從而進(jìn)行相應(yīng)的操作。這一篇文章將講述Javascript事件對象中和實現(xiàn)拖拽功能相關(guān)的幾個屬性,并在最后將IE事件模型和標(biāo)準(zhǔn)DOM事件模型的差異封裝到一個類中,從而適應(yīng)所有的瀏覽器。2008-09-09
javascript實現(xiàn)禁止右鍵和F12查看源代碼
這篇文章主要介紹了javascript實現(xiàn)禁止右鍵和F12查看源代碼的代碼,需要的朋友可以參考下2014-12-12
使用ThinkJs搭建微信中控服務(wù)的實現(xiàn)方法
這篇文章主要介紹了使用ThinkJs搭建微信中控服務(wù)的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08
bootstrap——bootstrapTable實現(xiàn)隱藏列的示例
本篇文章主要介紹了bootstrapTable實現(xiàn)隱藏列的示例,具有一定的參考價值,有興趣的可以了解一下。2017-01-01
javascript獲取系統(tǒng)當(dāng)前時間的方法
這篇文章主要介紹了javascript獲取系統(tǒng)當(dāng)前時間的方法,格式為:2015年11月19日 星期四09:21:05,需要的朋友可以參考下2015-11-11

