原生js和css實(shí)現(xiàn)圖片輪播效果
更新時(shí)間:2017年02月07日 15:40:55 作者:俠之大者為國(guó)為民
這篇文章主要為大家詳細(xì)介紹了原生javascript和css實(shí)現(xiàn)圖片輪播效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
本文實(shí)例為大家分享了javascript圖片輪播效果的具體代碼,供大家參考,具體內(nèi)容如下
<!DOCTYPE HTML>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<title>圖片輪播</title>
<style>
#box {
width:506px;
height:306px;
margin: 20px auto;
border:3px solid black;
position:relative;
background-color:orange;
overflow: hidden;
/*overflow: hidden;*/
}
.pic {
position: absolute;
width:500px;
height:300px;
line-height: 300px;
text-align: center;
font-size: 100px;
color:white;
bottom:0;
}
.red {
background-color:red;
}
.green {
background-color:green;
}
.blue {
background-color:blue;
}
.orange{
background-color: orange;
}
.move {
bottom:300px;
transition:bottom 3s; /* 設(shè)置圖片移動(dòng)消耗的時(shí)間*/
}
</style>
</head>
<body>
<div id="box">
<div id="pic1" class="pic red">1</div>
<div id="pic2" class="pic green">2</div>
<div id="pic3" class="pic blue">3</div>
<div id="pic3" class="pic orange">4</div>
</div>
<script>
window.addEventListener('load',function(){
var pics = document.getElementsByClassName('pic');
//為每個(gè)pic元素設(shè)置z-index的值
for(let i=0;i<pics.length;i++){
pics[i].style.zIndex = pics.length-i;
}
//循環(huán)播放圖片的函數(shù)
var loopPics = (function(){
var index=0;
return function(pics,delay){
var recall = function(pic){
//給圖片增加move類,調(diào)用css的transition屬性播放移動(dòng)動(dòng)畫
pic.className += ' move';
setTimeout(function(){
//取消圖片的move類,圖片返回原位
pic.className=pic.className.replace(' move','');
//改變圖片組的堆疊順序。最外的圖片放到最下面,其他圖片依次向外移動(dòng)
for(let i=0;i<pics.length;i++){
if(pics[i].style.zIndex==pics.length){
pics[i].style.zIndex=1;
} else {
pics[i].style.zIndex=pics[i].style.zIndex*1+1;
}
}
index++;
if(index==pics.length) index=0;
recall(pics[index]);
},delay);
};
recall(pics[index]);
};
})();
//調(diào)用函數(shù),循環(huán)播放。delay的時(shí)間需要大于等于css動(dòng)畫里設(shè)置的圖片移動(dòng)時(shí)間
loopPics(pics,4000);
});
</script>
</body>
</html>
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
您可能感興趣的文章:
相關(guān)文章
動(dòng)態(tài)創(chuàng)建按鈕的JavaScript代碼
本文給大家分享一段JS實(shí)例代碼介紹動(dòng)態(tài)創(chuàng)建按鈕的方法,需要的朋友參考下本文2016-01-01
微信小程序6位或多位驗(yàn)證碼密碼輸入框功能的實(shí)現(xiàn)代碼
這篇文章主要介紹了微信小程序6位或多位驗(yàn)證碼密碼輸入框功能的實(shí)現(xiàn)代碼,實(shí)現(xiàn)思路很簡(jiǎn)單,需要的朋友可以參考下2018-05-05
bootstrap中使用google prettify讓代碼高亮的方法
使用google prettify 讓代碼高亮非常漂亮,接下來通過本文給大家介紹bootstrap中使用google prettify讓代碼高亮的方法,感興趣的朋友一起看看吧2016-10-10
微信小程序發(fā)送短信驗(yàn)證碼完整實(shí)例
這篇文章主要介紹了微信小程序發(fā)送短信驗(yàn)證碼完整實(shí)例,實(shí)現(xiàn)發(fā)送短信驗(yàn)證碼,帶60秒倒計(jì)時(shí)功能,無需服務(wù)器端,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2019-01-01
深入學(xué)習(xí)js函數(shù)的隱式參數(shù) arguments 和 this
這篇文章主要介紹了 深入學(xué)習(xí)js函數(shù)的隱式參數(shù) arguments 和 this,arguments是一個(gè)類數(shù)組結(jié)構(gòu),它保存了調(diào)用時(shí)傳遞給函數(shù)的所有實(shí)參;this是函數(shù)執(zhí)行時(shí)的上下文對(duì)象, 這個(gè)對(duì)象有些讓人感到困惑的行為。 下面分別對(duì)他們進(jìn)行討論。,需要的朋友可以參考下2019-06-06
基于js Canvas實(shí)現(xiàn)二次貝塞爾曲線
這篇文章主要為大家詳細(xì)介紹了基于js Canvas實(shí)現(xiàn)二次貝塞爾曲線,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-12-12

