這篇文章主要介紹了javascript如何實(shí)現(xiàn)自動左滑的輪播圖,具有一定借鑒價(jià)值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。
創(chuàng)新互聯(lián)是一家專業(yè)提供下陸企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站制作、網(wǎng)站建設(shè)、HTML5建站、小程序制作等業(yè)務(wù)。10年已為下陸眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站制作公司優(yōu)惠進(jìn)行中。最近做項(xiàng)目總是只會調(diào)用別人做好的各種插件效果,想起很久沒來自己寫點(diǎn)小插件,久了會忘記的,就趕緊來補(bǔ)一下,前端程序員必備,實(shí)現(xiàn)一個(gè)js輪播圖。
html代碼:
此次的小demo樣例用了4張圖片,由于要實(shí)現(xiàn)無縫銜接,即最后一張順暢地跳轉(zhuǎn)到第一張,故在寫html的時(shí)候,再重復(fù)了最后一張圖片,然后通過直接定位,在輪播到最后一張圖片的時(shí)候,將整個(gè)ul定位到第一張,由于第一張和最后一張是一樣的,故效果看起來則順暢自然的輪播。
css代碼:
*{ margin: 0; padding: 0; } .slide{ position: relative; width: 1000px; height: 500px; margin: 40px auto; overflow: hidden; } .img ul{ position: absolute; left: -1000px; width: 5000px; } .img li{ list-style-type: none; float: left; } img{ width: 1000px; height: 500px; } #num li{ list-style-type: none; background-color: white; border: 1px solid red; border-radius: 100px; float: left; width: 10px; height: 10px; margin: 10px; cursor: pointer; } #num { position: absolute; top: 450px; left: 800px; } .btn{ font-size: 30px; color: gray; } #left{ position: absolute; top: 230px; left: 40px; cursor: pointer; } #right{ position: absolute; top: 230px; right: 40px; cursor: pointer; }
css中需要注意的是定位的時(shí)候,整個(gè)外部的p是相對定位,而里面的內(nèi)容ul則相對于外部p進(jìn)行絕對定位,通過left,top等來設(shè)置位置
js代碼:
$(document).ready(function () { initRadius(); }); var number = 1; //設(shè)置為全局變量 //輪播圖圖片主體 function startSlide() { dealRadius(number); if(number == 4) { number = 0; $('#slide_img').css({left: '0px'}); //處理無縫銜接圖 dealRadius(0); // 處理無縫銜接小圓點(diǎn)的跳轉(zhuǎn) } number++; var imageLeft = -1000 * number; $('#slide_img').animate({left: imageLeft}); } var timer = setInterval(startSlide,3000); //小圓點(diǎn)的輪播實(shí)現(xiàn) function dealRadius(num) { var lis = $('#num li'); lis.eq(num).css('background-color', 'red'); for(var i = 0; i < num; i++) { lis.eq(i).css('background-color','white'); } for(var i = num + 1; i < 4; i++) { lis.eq(i).css('background-color','white'); } } //初始化小圓點(diǎn) function initRadius() { var lis = $('#num li'); lis.eq(0).css('background-color', 'red'); } //左右按鈕的實(shí)現(xiàn) $('#left').mousedown (function() { clearInterval(timer); if(number == 0) { $('#slide_img').css({left: '-4000px'}); number = 4; } var imageLeft = -1000 * (number-1); $('#slide_img').animate({left: imageLeft}); number--; if(number == 0) { dealRadius(3); } else { dealRadius(number-1); } }); $('#left').mouseup(function() { timer = setInterval(startSlide,3000); }); $('#right').mousedown (function() { clearInterval(timer); if(number == 4) { number = 0; $('#slide_img').css({left: '0px'}); //處理無縫銜接圖 } var imageLeft = -1000 * (number+1); $('#slide_img').animate({left: imageLeft}); dealRadius(number); number++; }); $('#right').mouseup(function() { timer = setInterval(startSlide,3000); }); //小圓點(diǎn)的點(diǎn)擊實(shí)現(xiàn) $('#num').on('click','li',function(){ clearInterval(timer); var _number = $(this).index() + 1; number = _number dealRadius(number-1); var imageLeft = -1000 * number; $('#slide_img').animate({left: imageLeft}); timer = setInterval(startSlide,3000); });
js代碼中,首先要知道關(guān)于定時(shí)器的使用,其中,關(guān)于dom的使用,好久沒用啊,感覺很不熟悉。。自己得多來加強(qiáng)。。
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享javascript如何實(shí)現(xiàn)自動左滑的輪播圖內(nèi)容對大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,遇到問題就找創(chuàng)新互聯(lián),詳細(xì)的解決方法等著你來學(xué)習(xí)!
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。