javascript - 關(guān)于輪播圖JS如何調(diào)用儲(chǔ)存變量里的定時(shí)器
問(wèn)題描述
(function(){ var timer = null;hSlider(); function hSlider() { // 通過(guò)數(shù)組來(lái)控制slider內(nèi)容切換var imgadr = [’images/banner_2.jpg’, ’images/banner_3.jpg’, ’images/banner_1.jpg’], headArray = [’Second Heading’, ’Third Heading’,’First Heading’], paraArray = [’First paragraph is awesome!’, ’Second paragraph goes here!’, ’Third paragraph for you’ ], slider = document.getElementById(’slider’), next = document.getElementById(’prev’), prev = document.getElementById(’next’), iNow = i = 0; // 獲取slider作為畫(huà)布,再通過(guò)改變數(shù)組來(lái)修改背景,標(biāo)題和段落function _bg(iNow) { slider.style.background = 'url(’' + imgadr[i] + '’) no-repeat center /cover'; document.getElementById(’sliderHeader’).innerHTML = headArray[i]; document.getElementById(’sliderPara’).innerHTML = paraArray[i];} // 自動(dòng)循環(huán)timer = setInterval(function() { _bg(iNow); // 定時(shí)器每調(diào)動(dòng)一次,自加一實(shí)現(xiàn)切換效果 i++; if (i == imgadr.length) i = 0; }, 3500); // 上一頁(yè)prev.onclick = function() { _bg(iNow); clearInterval(timer); i--; if (i == -1) i = imgadr.length - 1;} // 下一頁(yè)next.onclick = function() { _bg(iNow); clearInterval(timer); i++; if (i == imgadr.length) i = 0; // setInterval(timer); 沒(méi)有效果} }}
起因最近要實(shí)現(xiàn)一個(gè)全屏輪播圖的功能,然后查詢很多資料,也參考了很多的網(wǎng)站的代碼,然后發(fā)現(xiàn)大多都是混淆過(guò)了的代碼..看不太懂.然后自己造了個(gè)原生簡(jiǎn)陋的輪播圖..由于js基礎(chǔ)不扎實(shí)肯定有很多問(wèn)題,希望dalao們能指出我錯(cuò)誤 原理是把slider當(dāng)畫(huà)布,可以通過(guò)數(shù)組來(lái)控制切換背景和段落文字,設(shè)置定時(shí)器循環(huán),每次循環(huán)數(shù)組i++起輪播的作用,控制器點(diǎn)擊后' i++' 或者 'i--' 控制上下頁(yè).點(diǎn)擊的時(shí)候我想清除點(diǎn)定時(shí)器,然后執(zhí)行自加一翻頁(yè)的效果,再添加回定時(shí)器. 那么問(wèn)題來(lái)了我將定時(shí)器是儲(chǔ)存到了一個(gè)變量中,那我該如何的再次調(diào)用他? 也可以放進(jìn)一個(gè)函數(shù)里再調(diào)用 但感覺(jué)會(huì)不會(huì)不太好..?
問(wèn)題解答
回答1:像這種我覺(jué)得setTimeout比setInterval更好控制:
var timer;function loop(){ timer = setTimeout(function() {_bg(iNow); // 定時(shí)器每調(diào)動(dòng)一次,自加一實(shí)現(xiàn)切換效果 i++; if (i == imgadr.length) i = 0; loop(); }, 3500)}//清理的話只要clearTimeout(timer)就行了,然后重新調(diào)用loop
相關(guān)文章:
1. css3 - [CSS] 動(dòng)畫(huà)效果 3D翻轉(zhuǎn)bug2. python - Django分頁(yè)和查詢參數(shù)的問(wèn)題3. javascript - 百度echarts series數(shù)據(jù)更新問(wèn)題4. MySQL客戶端吃掉了SQL注解?5. javascript - JS設(shè)置Video視頻對(duì)象的currentTime時(shí)出現(xiàn)了問(wèn)題,IE,Edge,火狐,都可以設(shè)置,反而chrom卻...6. php自學(xué)從哪里開(kāi)始?7. python小白的基礎(chǔ)問(wèn)題 關(guān)于while循環(huán)的嵌套8. 求大神幫我看看是哪里寫(xiě)錯(cuò)了 感謝細(xì)心解答9. phpstady在win10上運(yùn)行10. javascript - 圖片能在網(wǎng)站顯示,但控制臺(tái)仍舊報(bào)錯(cuò)403 (Forbidden)
