Javascript Jquery图像滚动器速度慢且不稳定

Javascript Jquery图像滚动器速度慢且不稳定,javascript,jquery,html,Javascript,Jquery,Html,因此,我构建了一个底部有小缩略图的图像滚动器,我希望当你将鼠标悬停在指定区域上时,缩略图可以左右滚动,当最后一个进入视图时,缩略图会停止(另一个方向的缩略图与第一个相同)我提出的代码在页面上运行了一段时间,但过了一段时间,它开始变得缓慢和急促,所以我想知道是否有更干净的方法来完成同样的事情 代码是: var licount = $('.hs_cos_flex-slides-thumb li').length; //counts rows in list var thumbwidth = lico

因此,我构建了一个底部有小缩略图的图像滚动器,我希望当你将鼠标悬停在指定区域上时,缩略图可以左右滚动,当最后一个进入视图时,缩略图会停止(另一个方向的缩略图与第一个相同)我提出的代码在页面上运行了一段时间,但过了一段时间,它开始变得缓慢和急促,所以我想知道是否有更干净的方法来完成同样的事情

代码是:

var licount = $('.hs_cos_flex-slides-thumb li').length; //counts rows in list
var thumbwidth = licount * 210; //gets width of all rows
var viewwidth = $(".hs-cos-flex-slider-control-panel").width(); //gets width of sarounding div
var scrollwidth = thumbwidth - viewwidth; //gets width where last row is visible

var intervalId = window.setInterval;

$( ".thumb-for" ).hover(
    function() {
        var scrollposition = $(".hs_cos_flex-slides-thumb").position().left; //calculates how far left it has moved
        var absposition = Math.abs(scrollposition); //gets absolute value of left movement
        var shover = true;

    if ( scrollwidth > (absposition + 209) ){  

            $('.hs_cos_flex-slides-thumb').animate({
                right: '+=210px'
            }, 1500, 'linear');
            absposition+=210;
        }

    intervalId = window.setInterval(moveticker, 1500)

    function moveticker() {


        if ( scrollwidth > (absposition + 209) ){  

            $('.hs_cos_flex-slides-thumb').animate({
                right: '+=210px'
            }, 1500, 'linear');
            absposition+=210;
        }



    };


}, function() {

    window.clearInterval(intervalId);

  }
);


$( ".thumb-back" ).hover(
    function() {
        var scrollposition = $(".hs_cos_flex-slides-thumb").position().left; //calculates how far left it has moved
        var absposition = Math.abs(scrollposition); //gets absolute value of left movement
        var shover = true;

    if ( scrollposition < 0 ){  

            $('.hs_cos_flex-slides-thumb').animate({
                right: '-=210px'
            }, 1500, 'linear');
            scrollposition+=210;
        }

    intervalId = window.setInterval(moveticker, 1500)

    function moveticker() {


        if ( scrollposition < 0 ){  

            $('.hs_cos_flex-slides-thumb').animate({
                right: '-=210px'
            }, 1500, 'linear');
            scrollposition+=210;
        }



    };


}, function() {

    window.clearInterval(intervalId);

  }
);
var licount=$('.hs\u cos\u flex-slides-thumb li')。长度//统计列表中的行数
var thumbwidth=licount*210//获取所有行的宽度
var viewwidth=$(“.hs cos flex滑块控制面板”).width()//获取sarounding div的宽度
var scrollwidth=thumbwidth-viewwidth//获取最后一行可见的宽度
var intervalId=window.setInterval;
$(“.thumb for”)。悬停(
函数(){
var scrollposition=$(“.hs\u cos\u flex-slides-thumb”).position().left;//计算它向左移动了多远
var absposition=Math.abs(scrollposition);//获取左移动的绝对值
var-spoor=true;
如果(滚动宽度>(相对位置+209)){
$('.hs_cos_flex-slides-thumb')。设置动画({
右:'+=210px'
},1500,‘线性’;
位置+=210;
}
intervalId=window.setInterval(moveticker,1500)
函数moveticker(){
如果(滚动宽度>(相对位置+209)){
$('.hs_cos_flex-slides-thumb')。设置动画({
右:'+=210px'
},1500,‘线性’;
位置+=210;
}
};
},函数(){
窗口。clearInterval(intervalId);
}
);
$(“.thumb back”)。悬停(
函数(){
var scrollposition=$(“.hs\u cos\u flex-slides-thumb”).position().left;//计算它向左移动了多远
var absposition=Math.abs(scrollposition);//获取左移动的绝对值
var-spoor=true;
如果(滚动位置<0){
$('.hs_cos_flex-slides-thumb')。设置动画({
右:'-=210px'
},1500,‘线性’;
滚动位置+=210;
}
intervalId=window.setInterval(moveticker,1500)
函数moveticker(){
如果(滚动位置<0){
$('.hs_cos_flex-slides-thumb')。设置动画({
右:'-=210px'
},1500,‘线性’;
滚动位置+=210;
}
};
},函数(){
窗口。clearInterval(intervalId);
}
);