javascript - 關(guān)于輪播圖JS如何調(diào)用儲存變量里的定時器
問題描述
(function(){ var timer = null;hSlider(); function hSlider() { // 通過數(shù)組來控制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作為畫布,再通過改變數(shù)組來修改背景,標題和段落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];} // 自動循環(huán)timer = setInterval(function() { _bg(iNow); // 定時器每調(diào)動一次,自加一實現(xiàn)切換效果 i++; if (i == imgadr.length) i = 0; }, 3500); // 上一頁prev.onclick = function() { _bg(iNow); clearInterval(timer); i--; if (i == -1) i = imgadr.length - 1;} // 下一頁next.onclick = function() { _bg(iNow); clearInterval(timer); i++; if (i == imgadr.length) i = 0; // setInterval(timer); 沒有效果} }}
起因最近要實現(xiàn)一個全屏輪播圖的功能,然后查詢很多資料,也參考了很多的網(wǎng)站的代碼,然后發(fā)現(xiàn)大多都是混淆過了的代碼..看不太懂.然后自己造了個原生簡陋的輪播圖..由于js基礎(chǔ)不扎實肯定有很多問題,希望dalao們能指出我錯誤 原理是把slider當畫布,可以通過數(shù)組來控制切換背景和段落文字,設(shè)置定時器循環(huán),每次循環(huán)數(shù)組i++起輪播的作用,控制器點擊后' i++' 或者 'i--' 控制上下頁.點擊的時候我想清除點定時器,然后執(zhí)行自加一翻頁的效果,再添加回定時器. 那么問題來了我將定時器是儲存到了一個變量中,那我該如何的再次調(diào)用他? 也可以放進一個函數(shù)里再調(diào)用 但感覺會不會不太好..?
問題解答
回答1:像這種我覺得setTimeout比setInterval更好控制:
var timer;function loop(){ timer = setTimeout(function() {_bg(iNow); // 定時器每調(diào)動一次,自加一實現(xiàn)切換效果 i++; if (i == imgadr.length) i = 0; loop(); }, 3500)}//清理的話只要clearTimeout(timer)就行了,然后重新調(diào)用loop
相關(guān)文章:
1. php - 微信開發(fā)驗證服務器有效性2. javascript - 我的站點貌似被別人克隆了, google 搜索特定文章,除了域名不一樣,其他的都一樣,如何解決?3. [python2]local variable referenced before assignment問題4. javascript - 求幫助 , ATOM不顯示界面!!!!5. Python2中code.co_kwonlyargcount的等效寫法6. python中怎么對列表以區(qū)間進行統(tǒng)計?7. 求救一下,用新版的phpstudy,數(shù)據(jù)庫過段時間會消失是什么情況?8. javascript - vue+iview upload傳參失敗 跨域問題后臺已經(jīng)解決 仍然報403,這是怎么回事啊?9. html - 移動端radio無法選中10. mysql - 請問數(shù)據(jù)庫字段為年月日,傳進的參數(shù)為月,怎么查詢那個月所對應的數(shù)據(jù)
