如何停止()jcarousel滚动动画

时间:2012-10-04 08:12:16

标签: jquery jcarousel

我已经设置了带外部控件的jcarousel。当我'鼠标悬停'在'控件'列表中的链接时,轮播将滚动到相应的图像。

到目前为止一切正常,但当我'鼠标悬停'不同的'控件' - 快速链接时,它会卡在第一个链接上并等待滚动动画完成。

// SCROLL TO LINK
$('#controls a').on('mouseover',function() {
var opt = $('#controls a').index(this)+1; 
carousel.scroll($.jcarousel.intval(opt)); 
}); 

我不确定,但我想我必须停止'mouseover'上的滚动动画来解决这个问题。

我试过这些行(不起作用):

carousel.stop(true);

carousel.scroll.stop(true);

有人可以帮我这个吗?这可能是一个简单的解决方案,但我对jQuery或编程一般没有经验。

3 个答案:

答案 0 :(得分:5)

有同样的问题。发现很简单的解决方案 把它放在“jquery.jcarousel.js”

/**
 * Stop animates the carousel, jump To End (animate Slide).
 *
 * @method animate
 * @return undefined
*/
stopAnimate: function() {
this.list.stop(true,true,true);
},

之后

 /**
 * Animates the carousel to a certain position.
 *
 * @method animate
 * @return undefined
 * @param p {Number} Position to scroll to.
 * @param a {Boolean} Flag indicating whether to perform animation.
 */
animate: function(p, a) {
    -/-/-/-/(several strings)
},

我的//滚动到链接//看起来像(我有另外的autoScrolling)

$('#controls a').hover(function() {
        var opt = $("#controls a").index(this) + 1;
        carousel.scroll(opt);
        carousel.stopAuto();//autoScroll Stop
    }, function() {
        carousel.stopAnimate(); //! here is located our function
        carousel.startAuto();//autoScroll Start
    });

也许有人发现它很有用!

答案 1 :(得分:2)

我有一个类似的控件使用jCarousel控件,当我鼠标悬停在某些div上时会显示一个特定的图像。我也遇到了问题,如果滚动动画已经播放,旋转木马将无法进入新目标。事实证明,我需要停止当前正在播放的动画是以下代码......

$(.jcarousel).jcarousel('list').finish();

我在指定新目标之前就调用了它,它解决了我的问题。我希望这会有所帮助。

答案 2 :(得分:0)

来自https://sorgalla.com/jcarousel/docs/plugins/autoscroll/reference/api.html

开始自动滚动:

$('.jcarousel').jcarouselAutoscroll('start');

停止自动滚动:

$('.jcarousel').jcarouselAutoscroll('stop');

我希望这会有所帮助。