酷! 不同風(fēng)格頁(yè)面布局幻燈片特效js實(shí)現(xiàn)
這是一款效果非常炫酷的不同風(fēng)格頁(yè)面布局幻燈片特效。該特效中,通過前后導(dǎo)航按鈕來(lái)切換幻燈片,每個(gè)幻燈片中的圖片均為不同的布局效果。

該幻燈片特效使用anime.js來(lái)制作幻燈片的動(dòng)畫特效,并使用很多CSS3屬性,需要最新版本的現(xiàn)代瀏覽器才能看到效果。對(duì)于IE瀏覽器,前面幾種效果可以在IE11及以上的瀏覽器看到效果,最后一種效果由于IE瀏覽器不支持SVG clip-path屬性,所以是看不到效果的。
使用方法
HTML結(jié)構(gòu)
該幻燈片的基本HTML結(jié)構(gòu)如下:每一個(gè)幻燈片都有各自的布局class類,和一個(gè)data-layout屬性,用于制作各自的動(dòng)畫效果。
<div class="slideshow"> <div class="slide slide--layout-1" data-layout="layout1"> <div class="slide-imgwrap"> <div class="slide__img"><div class="slide__img-inner" style="background-image: url(img/1.jpg);"></div></div> <div class="slide__img"><div class="slide__img-inner" style="background-image: url(img/2.jpg);"></div></div> <div class="slide__img"><div class="slide__img-inner" style="background-image: url(img/3.jpg);"></div></div> </div> <div class="slide__title"> <h3 class="slide__title-main">Now or Never</h3> <p class="slide__title-sub">... <a href="#">Read more</a></p> </div> </div><!-- /slide --> <div class="slide slide--layout-2" data-layout="layout2"> <!-- ... --> </div> <!-- ... --> </div><!-- /slideshow -->
CSS樣式
下面是其中一個(gè)布局的CSS樣式:
/* Layout 1: 3 grid images */
.slide--layout-1 .slide__img {
position: absolute;
width: calc(50% - 1em);
}
.slide--layout-1 .slide__img:first-child {
left: 0.5em;
height: 100%;
}
.slide--layout-1 .slide__img:nth-child(n+2) {
left: calc(50% + 0.5em);
height: calc(50% - 0.5em);
}
.slide--layout-1 .slide__img:nth-child(3) {
top: calc(50% + 0.5em);
}
得到的效果如下圖所示:

JavaScript
每一個(gè)幻燈片布局的動(dòng)畫效果定義在js文件中。結(jié)構(gòu)為: [layout name] : { out : {navigating out properties}, in : {navigating in properties} }。可以為進(jìn)入和離開的幻燈片設(shè)置不同的動(dòng)畫效果。下面的代碼是第一個(gè)布局的示例代碼:
MLSlideshow.prototype.options = {
// Starting position.
startIdx : 0,
// Layout configuration.
// [layout name] : { out : {navigating out properties}, in : {navigating in properties} }
layoutConfig : {
layout1 : {
out : {
translateX : {
next: '-100%',
prev: '100%'
},
rotateZ : {
next: function(el, index) {
return anime.random(-15, 0);
},
prev: function(el, index) {
return anime.random(0, 15);
}
},
opacity : 0,
duration: 1200,
easing : 'easeOutQuint',
itemsDelay : 80
},
in : {
resetProps : {
translateX : {
next: '100%',
prev: '-100%'
},
rotateZ : {
next: function(el, index) {
return anime.random(0, 15);
},
prev: function(el, index) {
return anime.random(-15, 0);
}
},
opacity : 0,
},
translateX : '0%',
rotateZ : 0,
opacity : 1,
duration: 700,
easing : 'easeOutQuint',
itemsDelay : 80
}
},
layout2 : { /* ... */ },
layout3 : { /* ... */ },
/* ... */
}
};
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
詳解如何使用微信小程序云函數(shù)發(fā)送短信驗(yàn)證碼
這篇文章主要介紹了詳解如何使用微信小程序云函數(shù)發(fā)送短信驗(yàn)證碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03
JS實(shí)現(xiàn)的文字與圖片定時(shí)切換效果代碼
這篇文章主要介紹了JS實(shí)現(xiàn)的文字與圖片定時(shí)切換效果代碼,可實(shí)現(xiàn)定時(shí)切換及鼠標(biāo)點(diǎn)擊切換兩種效果,涉及JavaScript鼠標(biāo)事件控制頁(yè)面樣式的相關(guān)技巧,需要的朋友可以參考下2015-10-10
HTML+CSS+JavaScript做女朋友版的刮刮樂(一看就會(huì))
這篇文章主要介紹了HTML+CSS+JavaScript做女朋友版的刮刮樂(一看就會(huì))本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-08-08
實(shí)例分析JS中的相等性判斷===、 ==和Object.is()
這篇文章主要給大家介紹了關(guān)于JS中相等性判斷===、 ==和Object.is()的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用JS具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11
JavaScript實(shí)現(xiàn)向右伸出的多級(jí)網(wǎng)頁(yè)菜單效果
這篇文章主要介紹了JavaScript實(shí)現(xiàn)向右伸出的多級(jí)網(wǎng)頁(yè)菜單效果,通過javascript調(diào)用頁(yè)面元素屬性的動(dòng)態(tài)改變實(shí)現(xiàn)向右展開菜單效果,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-08-08

