js實(shí)現(xiàn)超酷的照片墻展示效果圖附源碼下載
這是一個(gè)超酷的照片墻展示效果,很多照片結(jié)合淡入淡出、旋轉(zhuǎn)、縮放、傾斜及3D效果,照片快速?gòu)淖髠?cè)切入,做旋轉(zhuǎn)3D效果,最后在照片墻上整齊排列,為用戶展示了超酷的照片墻展示效果。

HTML
本文結(jié)合實(shí)例給大家分享超酷的照片墻效果,該效果依賴jQuery和easing插件,因此首先載入這兩個(gè)文件。
<script src="jquery.min.js"></script> <script src="jquery.easing.1.3.js"></script>
接著,我們?cè)谛枰故菊掌瑝Φ奈恢梅胖萌缦麓a:
<div class="grid"></div> <div class="animate">點(diǎn)擊看效果</div>
CSS
CSS定義了照片墻基本樣式,照片排列以及按鈕樣式。
.grid {
width: 600px; height: 300px; margin: 100px auto 50px auto;
perspective: 500px; /*For 3d*/
}
.grid img {width: 60px; height: 60px; display: block; float: left;}
.animate {
text-transform: uppercase;
background: rgb(0, 100, 0); color: white;
padding: 10px 20px; border-radius: 5px;
cursor: pointer;margin:10px auto;width:100px;text-align:center;
}
.animate:hover {background: rgb(0, 75, 0);}
JS
首先我們?cè)陧?yè)面上動(dòng)態(tài)載入50張照片,照片源來(lái)自網(wǎng)絡(luò)。
var images = "", count = 50;
for(var i = 1; i <= count; i++)
images += '<img src="http://thecodeplayer.com/u/uifaces/'+i+'.jpg" />';
$(".grid").append(images);
當(dāng)點(diǎn)擊按鈕時(shí),50張圖片做不同程度的變形縮放轉(zhuǎn)換淡出效果,因?yàn)橐腥胂乱粋€(gè)照片墻了,當(dāng)這些動(dòng)作全部完成時(shí),開(kāi)始切入照片墻動(dòng)畫(huà)效果,調(diào)用了storm()函數(shù)。
var d = 0; //延時(shí)
var ry, tz, s; //定義轉(zhuǎn)換參數(shù)
$(".animate").on("click", function(){
$("img").each(function(){
d = Math.random()*1000; //1ms to 1000ms delay
$(this).delay(d).animate({opacity: 0}, {
step: function(n){
s = 1-n; //scale - will animate from 0 to 1
$(this).css("transform", "scale("+s+")");
},
duration: 1000
})
}).promise().done(function(){
storm(); //淡出效果全部完成時(shí)調(diào)用
})
})
自定義函數(shù)storm()完成了將每張照片進(jìn)行角度旋轉(zhuǎn)和Z軸位移動(dòng)作,結(jié)合CSS3使得產(chǎn)生3D效果,然后調(diào)用easing實(shí)現(xiàn)緩沖效果,讓整個(gè)照片墻切入十分流暢,請(qǐng)看代碼:
function storm(){
$("img").each(function(){
d = Math.random()*1000;
$(this).delay(d).animate({opacity: 1}, {
step: function(n){
//rotating the images on the Y axis from 360deg to 0deg
ry = (1-n)*360;
//translating the images from 1000px to 0px
tz = (1-n)*1000;
//applying the transformation
$(this).css("transform", "rotateY("+ry+"deg) translateZ("+tz+"px)");
},
duration: 3000,
easing: 'easeOutQuint'
})
})
}
相關(guān)文章
如何基于webRTC實(shí)現(xiàn)人臉識(shí)別功能
WebRTC技術(shù)包含了音視頻編解碼技術(shù)、傳輸技術(shù)、流媒體服務(wù)器技術(shù)等,涵蓋了音視頻處理和傳輸?shù)姆椒矫婷?下面這篇文章主要給大家介紹了關(guān)于如何基于webRTC實(shí)現(xiàn)人臉識(shí)別的相關(guān)資料,需要的朋友可以參考下2022-12-12
JavaScript數(shù)據(jù)類型轉(zhuǎn)換詳解(推薦)
眾所周知JavaScript是一門(mén)弱類型(語(yǔ)言,即變量的類型是不確定的。所以下面這篇文章主要給大家介紹了關(guān)于JavaScript數(shù)據(jù)類型轉(zhuǎn)換的相關(guān)資料,需要的朋友可以參考下2021-05-05
JS實(shí)現(xiàn)的base64加密解密完整實(shí)例
這篇文章主要介紹了JS實(shí)現(xiàn)的base64加密解密,以完整實(shí)例形式分析了JavaScript基于base64編碼實(shí)現(xiàn)加密與解密的具體步驟與相關(guān)技巧,并附帶了相關(guān)的加密解密在線工具地址供大家參考,需要的朋友可以參考下2016-04-04
簡(jiǎn)單實(shí)現(xiàn)jquery焦點(diǎn)圖
這篇文章主要為大家詳細(xì)介紹了如何簡(jiǎn)單實(shí)現(xiàn)jquery焦點(diǎn)圖效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-12-12
手把手教你uniapp和uview2.0實(shí)現(xiàn)表單校驗(yàn)實(shí)戰(zhàn)
表單提交對(duì)大家來(lái)說(shuō)應(yīng)該都不陌生,這是個(gè)很常見(jiàn)的功能,這篇文章主要給大家介紹了關(guān)于手把手教你uniapp和uview2.0實(shí)現(xiàn)表單校驗(yàn)的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-05-05

