मुझे सेट इंटरवल के कार्यान्वयन में कोई समस्या है। मैंने एक स्लाइडर बनाया है जिसमें setInterval हर कुछ सेकंड में एक फ़ंक्शन को संसाधित करता है। मैंने कुछ मिनटों के बाद देखा है और setInterval के निष्पादन के कुछ दौर एक अतिरिक्त देरी हो रही है। कृपया सुझाव दें कि यहां समस्या क्या है?SetInterval निष्पादन के कई दौरों के बाद देरी बनाता है
$(document).ready(function() {
var totalItems = $('.sliderItem', '#slider').length;
var currentIndex = $('.itemActive').index() + 1;
var slideTime = 3000;
function goNext (e) {
$('.sliderItem').eq(e).fadeOut(500);
$('.welcomeBox > .welcomeText1', '.sliderItem').eq(e).hide(500);
$('h1', '.sliderItem').eq(e).hide(500);
$('h2', '.sliderItem').eq(e).hide(500);
if(e == totalItems - 1) {
e = 0;
} else {
e++;
};
$('.sliderItem').eq(e).fadeIn(400);
$('h1', '.sliderItem').eq(e).delay(800).show(400);
$('h2', '.sliderItem').eq(e).delay(500).show(400);
$('.welcomeBox > .welcomeText1', '.sliderItem').eq(e).delay(300).show(400);
currentIndex = e;
};
function loader() {
$('.loader').animate({"width":"100%"}, slideTime - 199);
$('.loader').animate({"opacity":"0"}, 199);
$('.loader').animate({"width":"0%"}, 0);
$('.loader').animate({"opacity":"1"}, 0);
};
function autoPlay (e){
timer = setInterval(function() {
loader();
goNext(e - 1);
console.log(e);
if(e == totalItems) {
e = 1;
} else {
e++;
};
currentIndex = e;
}, slideTime);
};
autoPlay(currentIndex);
});
https://codepen.io/Sizoom/pen/ayjNog
आप "अतिरिक्त देरी" के बारे में बात करते हैं। क्या आपका मतलब है कि अचानक अचानक अंतराल विलंब होता है? या क्या आपका मतलब है कि यह समय के साथ धीरे-धीरे बढ़ता है, ताकि कुछ मिनटों के बाद यह अब "सिंक" में न हो? –
मैंने आपका डेमो देखा, अगर समस्या यह है कि संकेतक बार स्लाइडर के साथ सिंक में नहीं है तो यह सामान्य है ... आपको सूचक बार के अंत में स्लाइडर को एक ईवेंट के साथ ड्राइव करना चाहिए .... – sabotero