原生JS實(shí)現(xiàn)輪播圖效果
學(xué)習(xí)前端也有一小段時(shí)間了,當(dāng)初在學(xué)習(xí)javascript的時(shí)候,練手的一個(gè)輪播圖實(shí)例,輪播圖也是挺常見(jiàn)的了。
著是通過(guò)獲取圖片偏移量實(shí)現(xiàn)的,也實(shí)現(xiàn)了無(wú)縫切換,還有一點(diǎn)問(wèn)題就是沒(méi)有加上圖片切換的時(shí)候的延遲了。
html:
<div id="container">
<div id="list" style="left: -600px;">
<img src="../image/1.jpg" alt="5">
<img src="../image/1.jpg" alt="1">
<img src="../image/2.jpg" alt="2">
<img src="../image/3.jpg" alt="3">
<img src="../image/4.jpg" alt="4">
<img src="../image/5.jpg" alt="5">
<img src="../image/1.jpg" alt="1">
</div>
<div id="buttons">
<span class="on"></span>
<span></span>
<span></span>
<span></span>
<span></span>
</div>
<a href="javascript:;" id="prev" class="arrow"><</a>
<a href="javascript:;" id="next" class="arrow">></a>
</div>
js:
window.onload = function(){
//獲取元素
var container = document.getElementById('container');
var list = this.document.getElementById('list');
var buttons = document.getElementById('buttons').getElementsByTagName('span');
var prev = document.getElementById('prev');
var next = document.getElementById('next');
var index = 1;//默認(rèn)第一個(gè)小圓點(diǎn)亮
//小圓點(diǎn)的點(diǎn)亮
function showButton() {
//遍歷小圓點(diǎn)的個(gè)數(shù),當(dāng)觸發(fā)onclick事件后,className為‘on'的變?yōu)椤?。
for(var i = 0;i < buttons.length; i++){
if(buttons[i].className == 'on'){
buttons[i].className = '';
break;
}
}
buttons[index - 1].className = 'on'; //原始第一個(gè)小圓點(diǎn)點(diǎn)亮,onclick事件觸發(fā)后,index+1
}
function animate (offset) {
//獲取從第一張圖片開(kāi)始發(fā)生的偏移量
var newLift = parseInt(list.style.left) + offset;
list.style.left = newLift + 'px';
if(newLift > -600){
//如果偏移量的位置大于-600的時(shí)候,圖片跳轉(zhuǎn)到第五張圖片
list.style.left = -3000 + 'px';
}
if(newLift < -3000){
//如果偏移量的位置大于-3000的時(shí)候,圖片跳轉(zhuǎn)到第一張圖片
list.style.left = -600 + 'px';
}
}
next.onclick = function () {
//如果button的index為5的時(shí)候,再點(diǎn)擊next按鈕會(huì)返回 1;
if(index == 5){
index = 1;
}else{
index += 1;
}
showButton();
animate(-600);
}
prev.onclick = function () {
if(index == 1){
index = 5;
}else{
index -= 1;
}
showButton();
animate(600);
}
}
更多關(guān)于輪播圖效果的專題,請(qǐng)點(diǎn)擊下方鏈接查看學(xué)習(xí)
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- 原生js實(shí)現(xiàn)輪播圖的示例代碼
- js實(shí)現(xiàn)支持手機(jī)滑動(dòng)切換的輪播圖片效果實(shí)例
- js實(shí)現(xiàn)點(diǎn)擊左右按鈕輪播圖片效果實(shí)例
- JS實(shí)現(xiàn)左右無(wú)縫輪播圖代碼
- 基于vue.js輪播組件vue-awesome-swiper實(shí)現(xiàn)輪播圖
- zepto中使用swipe.js制作輪播圖附swipeUp,swipeDown不起效果問(wèn)題
- 原生js實(shí)現(xiàn)無(wú)限循環(huán)輪播圖效果
- JS實(shí)現(xiàn)自動(dòng)輪播圖效果(自適應(yīng)屏幕寬度+手機(jī)觸屏滑動(dòng))
- 原生js實(shí)現(xiàn)移動(dòng)開(kāi)發(fā)輪播圖、相冊(cè)滑動(dòng)特效
- 簡(jiǎn)單的JS輪播圖代碼
相關(guān)文章
javascript 瀏覽器檢測(cè)代碼精簡(jiǎn)版
javascript檢測(cè)瀏覽器精簡(jiǎn)版,需要的朋友可以參考下。2010-03-03
javascript移出節(jié)點(diǎn)removeChild()使用介紹
這篇文章主要介紹了javascript節(jié)點(diǎn)操作移出節(jié)點(diǎn)removeChild()的使用,需要的朋友可以參考下2014-04-04
中高級(jí)前端必須了解的JS中的內(nèi)存管理(推薦)
這篇文章主要介紹了中高級(jí)前端必須了解的JS中的內(nèi)存管理,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07
JavaScipt驗(yàn)證URL新方法詳解(2023 年版)
這篇文章主要為大家介紹了JavaScipt驗(yàn)證URL新方法示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12
關(guān)于flash遮蓋div浮動(dòng)層的解決方法
關(guān)于flash遮蓋div浮動(dòng)層2010-07-07
Web前端開(kāi)發(fā)工具——bower依賴包管理工具
Bower 是 twitter 推出的一款包管理工具,基于nodejs的模塊化思想,把功能分散到各個(gè)模塊中,讓模塊和模塊之間存在聯(lián)系,通過(guò) Bower 來(lái)管理模塊間的這種聯(lián)系,本文給大家介紹bower依賴包管理工具,感興趣的朋友一起學(xué)習(xí)2016-03-03
關(guān)于JavaScript中原型繼承中的一點(diǎn)思考
JS中原型的概念不想多說(shuō),這里只是探討一下修改父類原型屬性與覆蓋父類原型中屬性的區(qū)別,防止以后出問(wèn)題2012-07-07

