JS實現小圖放大輪播效果


JS實現小圖放大輪播頁面效果入下(圖片為優行商旅頁面照片):

 實現效果:
圖片自動輪播,鼠標移入停止,移出繼續輪播
點擊下方小圖可以實現切換

步驟一:建立HTML布局,具體如下:

 

<body>
    <div id="carousel" class="carousel" onmouseover="stop()" onmouseout="again()">
        <ul class="list" id="ulctrl">
            <li class="trans"><span></span></li>
            <li><span></span></li>
            <li><span></span></li>
            <li><span></span></li>
        </ul>
    </div>
</body>

 

 

 

  其中div為圖片輪播區域,li用於放置小圖

步驟二:CSS布局

 

*{
            margin:0;
            padding:0;
        }
        ul{
            list-style: none;
            height:auto;
            position: absolute;
            top:95%;
            left:32%;
        }
        #carousel{
            width:100%;
            height:400px;
            background-image: url(images/1.jpg);
            background-repeat: no-repeat;
            background-position: center;
            position: relative;
        }
        li{
            float:left;
            margin-right: 20px;
        }
        span{
            display: block;
            width:110px;
            height:41px;
            background-size: 110px 41px;
            border:none;
        }
        li:nth-child(1) span{
            background-image: url(images/1.jpg);
            border:2px solid orange;
        }
        li:nth-child(2) span{
            background-image: url(images/2.jpg);
        }
        li:nth-child(3) span{
            background-image: url(images/3.jpg);
        }
        li:nth-child(4) span{
            background-image: url(images/4.jpg);
        }

 

 

 

  通過定位使小圖顯示在下方,此時輪播區域顯示的為第一張圖片

步驟三:添加JS邏輯(其中該代碼注釋中的圓點是指輪播圖下方小圖)

let cnt=1;//計數器
let ulctrl=document.getElementById("ulctrl");//圓點控制器
let lis=ulctrl.children;//圓點們
let linow=lis[0];//初始化當前圓點為第一個
let clock;//聲明計時器
var carousel=document.getElementById("carousel");//背景容器
for(let i=0;i<lis.length;i++){
    //給圓點綁定函數,點擊改變圓點樣式和圖片
    lis[i].onclick=function (){
        cnt=i+1;
        carousel.style.backgroundImage="url(images/"+cnt+".jpg)";
        for(let li of lis){
             li.children[0].style.border = 'none';
        }
         this.children[0].style.border = '2px solid orange';
    }
}
//改變圓點樣式
function ctrl(){
    linow.children[0].style.border = 'none';
    linow=lis[cnt-1];
    linow.children[0].style.border = '2px solid orange';
}
//鼠標覆蓋輪播圖,停止輪播
function stop(){
    clearInterval(clock);//清除計時器
}
//鼠標離開輪播圖,繼續輪播
function again(){
    clock=setInterval(this.start, 2000);//創建計時器
}
//輪播函數
function start(){ 
    if(cnt==4){
        cnt=1;
    }else{
        cnt++;//更新計數器
    }
    carousel.style.backgroundImage="url(images/"+cnt+".jpg)";
    ctrl();//輪播狀態下改變圓點樣式
    }
(function move(){
    clock=setInterval(this.start, 2000);//創建計時器,2秒執行一次start函數
})();//自執行函數

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM