站長資訊網
最全最豐富的資訊網站

HTML+CSS+JS實現堆疊輪播效果的示例代碼

這篇文章主要介紹了HTML+CSS+JS實現堆疊輪播效果,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

效果:

輪播圖在向一個方向移動的同時,要對其每一個圖片的大小,位置,透明度以及層級進行改變

原理:

輪播圖向左移動時將第一個子元素剪切到末尾,輪播圖向右移動時,將末尾子元素剪切到最前面,以此實現無縫輪播效果,再因為li剪切后,下一個li會補上(例如第一個子元素被剪切到最后時,第二個字元素會補上成為第一個子元素),所以li下標不變,以次來修改每一個位置的li的屬性(大小,位置,透明度,層級)

HTML代碼:

<body>
<div class=”smallBox”>
<div class=”arrowLeft”>←</div>
<div class=”smallPicBox”> //用一個div存放一個ul,并對ul里的每一個li進行初始樣式設置
<ul>
<li id=”li1″ style=”position: absolute;top:calc(50% – 200px);left: 0px;z-index:1;background-color: aqua;transform: scale(0.5);transition: 0.3s;opacity: 0.5;background-image: url(./images/01.jpg);background-size: cover;”></li>
<li id=”li2″ style=”position: absolute;top:calc(50% – 200px);left: 150px; z-index:2;background-color: red;transform: scale(0.7); transition: 0.3s;opacity: 0.7;background-image: url(./images/02.jpg);background-size: cover;”></li>
<li id=”li3″ style=”position: absolute;top:calc(50% – 200px);left: 300px; z-index:3;background-color: blue;transform: scale(0.9); transition: 0.3s;opacity: 0.9;background-image: url(./images/03.jpg);background-size: cover;”></li>
<li id=”li4″ style=”position: absolute;top:calc(50% – 200px);left: 450px; z-index:4;background-color: green;transform: scale(1); transition: 0.3s;opacity: 1;background-image: url(./images/04.jpg);background-size: cover;”></li>
<li id=”li5″ style=”position: absolute;top:calc(50% – 200px);left: 600px; z-index:3;background-color: yellow;transform: scale(0.9); transition: 0.3s;opacity: 0.9;background-image: url(./images/05.jpg);background-size: cover;”></li>
<li id=”li6″ style=”position: absolute;top:calc(50% – 200px);left: 750px; z-index:2;background-color: gray;transform: scale(0.7); transition: 0.3s;opacity: 0.7;background-image: url(./images/06.jpg);background-size: cover;”></li>
<li id=”li7″ style=”position: absolute;top:calc(50% – 200px);left: 900px; z-index:1;background-color: deeppink;transform: scale(0.5); transition: 0.3s;opacity: 0.5;background-image: url(./images/07.jpg);background-size: cover;”></li>
</ul>
</div>
<div class=”arrowRight”>→</div>
</div>
</div>
</body>

CSS代碼:

<style>
*{
margin: 0;
padding: 0;
list-style: none;
}
.albumBox{
width: 1200px;
height: 400px;
margin: 0 auto;
border: 1px solid #000;
}

.smallBox{
height: 400px;
line-height: 400px;
position: relative;
}
.smallPicBox{
width: 1100px;
height: 400px;
float: left;
position: relative;
}
.smallPicBox ul{
width: 100%;
height: 400px;
}
.smallPicBox li{
width: 320px;
height: 400px;
float: left;
border: 1px solid #000;
box-sizing: border-box;
}
.smallBox .current::after{
content: “25b2”;
position: absolute;
top: -31px;
left: 70px;
color: red;

}
.arrowLeft{
width: 50px;
height: 400px;
position: absolute;
left: 0;
border: 1px solid #000;
box-sizing: border-box;
background-color: gray;
z-index: 10;
}
.arrowRight{
width: 50px;
height: 400px;
position: absolute;
right: 0;
border: 1px solid #000;
box-sizing: border-box;
background-color: gray;
z-index: 10;
}
</style>

JS代碼:

<script>
var arrowLeft=document.querySelector(“.arrowLeft”)
var arrowRight=document.querySelector(“.arrowRight”)
var ul=document.querySelector(“.smallPicBox ul”)
var li=document.querySelectorAll(“.smallPicBox li”)
var timerId=0
arrowLeft.onclick=function(){ //左箭頭點擊事件
li=document.getElementsByTagName(‘li’)
ul.appendChild(li[0]) //將ul的第0個子元素剪切到末尾,實現無縫輪播
posi(li) //修改每一個li的屬性
}
arrowRight.onclick=function(){ //右箭頭點擊事件
li=document.getElementsByTagName(‘li’) //重新獲取li
ul.insertBefore(li[6],li[0]) //將ul的最后一個子元素剪切到最前面,實現無縫輪播
posi(li) //修改每一個li的屬性
}

function posi(li){ //修改li屬性函數
var n1=0
for(var x=0;x<li.length;x++){ //修改位置
li[x].style.left=n1+’px’
n1=n1+150
}
for(var i=0;i<li.length/2;i++){ //修改層級
li[i].style.zIndex=i+1
li[li.length-1-i].style.zIndex=i+1
}
li[3].style.zIndex=’4′
var n2=0.3
for(var j=0;j<li.length/2;j++){ //縮放
n2=parseFloat(n2+0.2)
li[j].style.transform=’scale(‘+n2+’)’
li[li.length-1-j].style.transform=’scale(‘+n2+’)’
}
li[3].style.transform=’scale(1)’
var n3=0.3
for(var k=0;k<li.length/2;k++){ //修改透明度
n3=parseFloat(n3+0.2)
li[k].style.opacity=n3
li[li.length-1-k].style.opacity=n3
}
li[3].style.opacity=’1′
}
//鼠標移入移出
temerId=setInterval(function(){
arrowLeft.click()
}, 1000);
arrowLeft.onmouseover=function(){
clearInterval(temerId)
}
arrowLeft.onmouseout=function(){
temerId=setInterval(function(){
arrowLeft.click()
}, 1000);
}
arrowRight.onmouseover=function(){
clearInterval(temerId)
}
arrowRight.onmouseout=function(){
temerId=setInterval(function(){
arrowLeft.click()
}, 1000);
}
</script>

注:本例js是直接寫在body里的,也可以單獨寫一個js文件,在引入到html界面

文章來源:腳本之家,原文鏈接:https://www.jb51.net/css/744188.html

HTML+CSS+JS實現堆疊輪播效果的示例代碼

申請創業報道,分享創業好點子。點擊此處,共同探討創業新機遇!

贊(0)
分享到: 更多 (0)
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
国产精品午夜爆乳美女视频| 亚洲男人的天堂久久精品| 日韩精品无码永久免费网站| 国产精品美女一级在线观看 | 国产精品三级在线| 东北妇女精品BBWBBW| 午夜精品久久久久蜜桃| 精品国产av一二三四区| 亚洲精品国产av成拍色拍| 国产精品福利在线观看| 精品人妻人人做人人爽| 久久综合国产乱子伦精品免费 | 精品人妻系列无码人妻漫画| www.精品国产| 久久精品国产亚洲AV麻豆~| 日韩一区二区三区四区不卡| 国产在线91精品天天更新| 最新国产精品视频| 精品日韩一区二区| 热久久综合这里只有精品电影| 国产精品久久久久乳精品爆| 国产愉拍精品手机| 精品av天堂毛片久久久| 偷拍精品视频一区二区三区| 久久精品中文字幕无码绿巨人| 久久精品福利视频| 久久亚洲精品成人777大小说| 久久久久免费精品国产| 日韩精品成人一区二区三区| 久久久91精品国产一区二区三区| 日韩精品成人一区二区三区 | 久久这里只有精品国产免费10| 亚洲欧洲精品久久| 国产在线拍揄自揄视精品不卡| 亚洲精品无码永久在线观看你懂的 | 国产日韩在线观看视频网站 | 69久久夜色精品国产69小说| 亚洲精品自拍视频| 精品国产V无码大片在线看| 国产精品入口在线看麻豆| 国产va免费精品观看精品|