带有间隔的 Jquery 滑块在屏幕分辨率更改时加快速度

Jquery slider with interval speeds up when screen resolution changes

本文关键字:分辨率 速度 屏幕 Jquery      更新时间:2023-09-26

所以我的滑块工作得很好; 切换 3 秒,当我将鼠标悬停在它上面或单击箭头时停止。 然后,如果我不理会它,它会重新启动。

一切正常。

但是,当我更改分辨率以处理响应能力时,开始加速并且不响应鼠标悬停。

$var main = function(){
$('.dropdown-toggle').click(function(){
    $('.dropdown-menu').toggle();
    });

$('.arrow-next').click(function(){
    var currentSlide = $('.active-slide');
    var nextSlide = currentSlide.next();
    if(nextSlide.length == 0){
        nextSlide = $('.slide').first();
        };
    currentSlide.fadeOut(600).removeClass('active-slide');
    nextSlide.fadeIn(600).addClass('active-slide');
    var currentDot = $('.active-dot');
    var nextDot = currentDot.next();
    if(nextDot.length == 0){
        nextDot = $('.dot').first();
        };
    currentDot.removeClass('active-dot');
    nextDot.addClass('active-dot');
    });
};
$('.arrow-prev').click(function(){
    currentSlide = $('.active-slide');
    prevSlide = currentSlide.prev();
    if(prevSlide.length == 0){
        prevSlide = $('.slide').last();
        };
    currentSlide.fadeOut(600).removeClass('active-slide');
    prevSlide.fadeIn(600).addClass('active-slide');
    var currentDot = $('.active-dot');
    var prevDot = currentDot.prev();
    if(prevDot.length == 0){
        prevDot = $('.dot').last();
        };
    currentDot.removeClass('active-dot');
    prevDot.addClass('active-dot');

    });

$(document).ready(main);
$(document).ready( function() {
var auto = setInterval(function() {
  var currentSlide = $('.active-slide');
    var nextSlide = currentSlide.next();
    if(nextSlide.length == 0){
        nextSlide = $('.slide').first();
        };
    currentSlide.fadeOut(600).removeClass('active-slide');
    nextSlide.fadeIn(600).addClass('active-slide');
    var currentDot = $('.active-dot');
    var nextDot = currentDot.next();
    if(nextDot.length == 0){
        nextDot = $('.dot').first();
        };
    currentDot.removeClass('active-dot');
    nextDot.addClass('active-dot');
}, 3000);

 $('.slider, .arrow-prev, .arrow-next').mouseover(function(){
clearInterval(auto);
}).mouseout(function(){
var auto = setInterval(function() {
  var currentSlide = $('.active-slide');
    var nextSlide = currentSlide.next();
    if(nextSlide.length == 0){
        nextSlide = $('.slide').first();
        };
    currentSlide.fadeOut(600).removeClass('active-slide');
    nextSlide.fadeIn(600).addClass('active-slide');
    var currentDot = $('.active-dot');
    var nextDot = currentDot.next();
    if(nextDot.length == 0){
        nextDot = $('.dot').first();
        };
    currentDot.removeClass('active-dot');
    nextDot.addClass('active-dot');
}, 3000);
})
});        

我想通了...因为我在函数中声明了"var",所以它是一个非全局变量,所以它堆叠在一起。现在我在函数外部添加了 var auto,并在函数内部删除了 var,它可以完美地调整大小;最小化,一切都:D

大约 3 周前我开始研究 js 和 jquery,之前有 0 个知识,所以我的代码可能是......怎么说呢...废话!但至少我很高兴我想通了这个!

我欢迎有关此滑块的一般建议。