js實(shí)現(xiàn)3D圖片展示效果
更新時(shí)間:2017年03月09日 08:32:38 作者:shangpudxd
本文主要介紹了js實(shí)現(xiàn)3D圖片展示效果的實(shí)例,具有很好的參考價(jià)值。下面跟著小編一起來看下吧
點(diǎn)擊左上角的按鈕前后切換
效果圖:

代碼如下:
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
*{margin:0; padding:0; list-style:none;}
ul{
width:300px;
height:300px;
margin:100px auto;
position:relative;
-webkit-transform-style:preserve-3d;
perspective:800px;
}
ul li{
position:absolute;
top:0; left:0;
width:100%;
height:100%;
text-align:center;
line-height:300px;
font-size:50px;
background:#399;
border:1px solid #000;
opacity:0;
}
.l2{
opacity:0;
-webkit-transform: translate(-280px,0) rotateY(45deg);
z-index:3;
}
.l1{
opacity:1;
-webkit-transform: translate(-220px,0) rotateY(45deg);
z-index:4;
}
.cur{
opacity:1;
-webkit-transform:translateZ(50px);
z-index:5;
}
.r1{
opacity:1;
-webkit-transform: translate(220px,0) rotateY(-45deg);
z-index:4;
}
.r2{
opacity:0;
-webkit-transform: translate(280px,0) rotateY(-45deg);
z-index:3;
}
</style>
<script>
window.onload = function(){
var oPrev = document.querySelector('.prev_btn');
var oNext = document.querySelector('.next_btn');
var aLi = document.querySelectorAll('ul li');
var aClass = [];
for(var i=0;i<aLi.length;i++){
aClass[i] = aLi[i].className;
}
var bOk = false;
oPrev.onclick = function(){
if(bOk)return;
bOk = true;
aClass.push(aClass.shift());
change();
};
oNext.onclick = function(){
if(bOk)return;
bOk = true;
aClass.unshift(aClass.pop());
change();
};
function change(){
for(var i=0;i<aLi.length;i++){
aLi[i].style.WebkitTransition = '.5s all ease';
aLi[i].className = aClass[i];
}
var oCur = document.querySelector('.cur');
function tranEnd(){
oCur.removeEventListener('transitionend',tranEnd,false);
bOk = false;
}
oCur.addEventListener('transitionend',tranEnd,false);
}
};
</script>
</head>
<body>
<input type="button" value="prev" class="prev_btn" />
<input type="button" value="next" class="next_btn" />
<ul>
<li class="l2">0</li>
<li class="l1">1</li>
<li class="cur">2</li>
<li class="r1">3</li>
<li class="r2">4</li>
<li>5</li>
<li>6</li>
<li>7</li>
<li>8</li>
<li>9</li>
<li>10</li>
<li>11</li>
<li>12</li>
<li>13</li>
</ul>
</body>
</html>
以上就是本文的全部內(nèi)容,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,同時(shí)也希望多多支持腳本之家!
您可能感興趣的文章:
- 純JS實(shí)現(xiàn)旋轉(zhuǎn)圖片3D展示效果
- JS實(shí)現(xiàn)3D圖片旋轉(zhuǎn)展示效果代碼
- js模擬3D場景效果代碼打包
- js+vml創(chuàng)建3D頁面效果代碼
- js實(shí)現(xiàn)3D圖片逐張輪播幻燈片特效代碼分享
- 原生javascript+css3編寫的3D魔方動(dòng)畫旋扭特效
- JS實(shí)現(xiàn)的3D拖拽翻頁效果代碼
- 基于css3新屬性transform及原生js實(shí)現(xiàn)鼠標(biāo)拖動(dòng)3d立方體旋轉(zhuǎn)
- 基于javascript html5實(shí)現(xiàn)3D翻書特效
- js實(shí)現(xiàn)3D圖片環(huán)展示效果
相關(guān)文章
js傳遞數(shù)組參數(shù)到后臺controller的方法
下面小編就為大家分享一篇js傳遞數(shù)組參數(shù)到后臺controller的方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-03-03
重寫javascript中window.confirm的行為
javascript中window.confirm這個(gè)方法很好用,可以彈出一個(gè)確認(rèn)對話框.但有一個(gè)問題是,它默認(rèn)的情況下,將選中那個(gè)"確定"按鈕,當(dāng)用戶有意無意的在鍵盤回車,就是說按下Enter鍵的時(shí)候,就會(huì)自動(dòng)返回true。在很多時(shí)候其實(shí)我們不希望這樣2012-10-10
原生JS實(shí)現(xiàn)多個(gè)小球碰撞反彈效果示例
這篇文章主要介紹了原生JS實(shí)現(xiàn)多個(gè)小球碰撞反彈效果,結(jié)合完整實(shí)例形式分析了javascript實(shí)現(xiàn)小球碰撞的相關(guān)數(shù)值計(jì)算、隨機(jī)數(shù)生成、事件響應(yīng)等操作技巧,需要的朋友可以參考下2018-01-01
Javascript ES6中對象類型Sets的介紹與使用詳解
這篇文章主要給大家介紹了關(guān)于Javascript ES6中Sets的介紹與使用的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面跟著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2017-07-07
JS JSON對象轉(zhuǎn)為字符串的簡單實(shí)現(xiàn)方法
這篇文章主要介紹了JS中JSON對象轉(zhuǎn)為字符串的簡單實(shí)現(xiàn)方法。需要的朋友可以過來參考下,希望對大家有所幫助2013-11-11
使用JavaScript實(shí)現(xiàn)一個(gè)簡易的熱更新
熱更新是指在應(yīng)用程序運(yùn)行時(shí),對程序的部分內(nèi)容進(jìn)行更新,而無需重啟整個(gè)應(yīng)用程序,熱更新是在不停止整個(gè)應(yīng)用程序的情況下,將新的代碼、資源或配置應(yīng)用于正在運(yùn)行的應(yīng)用程序,本文講給大家介紹一下使用JavaScript實(shí)現(xiàn)一個(gè)簡易的熱更新,需要的朋友可以參考下2023-08-08
仿163填寫郵件地址自動(dòng)顯示下拉(無優(yōu)化)
本框內(nèi)填個(gè)1,這些值都寫在隱藏域了。代碼里可以看到,用戶輸入包含在里面的時(shí)候,可以按ENTER鍵選中.2008-11-11

