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作為畫布,再通過(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)畫布,可以通過(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. docker images顯示的鏡像過(guò)多,狗眼被亮瞎了,怎么辦?2. javascript - Web微信聊天輸入框解決方案3. 請(qǐng)教各位大佬,瀏覽器點(diǎn) 提交實(shí)例為什么沒(méi)有反應(yīng)4. docker - 如何修改運(yùn)行中容器的配置5. javascript - log4js的使用問(wèn)題6. javascript - 移動(dòng)端textarea不能上下滑動(dòng),該怎么解決?7. javascript - 為什么form表單提交沒(méi)有跨域問(wèn)題,但ajax提交有跨域問(wèn)題?8. javascript - history.replaceState()無(wú)法改變query參數(shù)9. javascript - 為什么這個(gè)點(diǎn)擊事件需要點(diǎn)擊兩次才有效果10. javascript - Ajax加載Json時(shí),移動(dòng)端頁(yè)面向左上角縮小一截兒,加載完成后才正常顯示,這該如何解決?
