如何在鼠标悬停时立即停止jcarousel,并在鼠标移出时继续?

4

我正在尝试使用操作(在此情况下是悬停)停止转换,但我不知道如何实现。 这是我进行测试的地方:

http://lvemil.net/gla/web/

我有三个 jcarousel 实例,我的目标是在鼠标悬停时立即停止移动。 问题是:当鼠标悬停在旋转木马上时,我停止了它,但当前的转换在停止之前结束,这不是想要的感觉,我希望在鼠标悬停时立即停止移动。
以下是第一个旋转木马的初始化内容:
$('#jcarousel1')
.jcarousel({
    'animation': {
        'duration': 6000,    //DEFINE SPEED
        'easing':   'linear',
        'complete': function() {
        //ON ANIMATION COMPLETE ACTION GO HERE
        }
    },
    'wrap': 'circular'


}).jcarouselAutoscroll({
    interval: 1,
    target: '+=1',
    autostart: true
}).on('mouseover',function(e){
    $(this).jcarouselAutoscroll('stop');
}).on('mouseout',function(e){
    $(this).jcarouselAutoscroll('start');
});

其他两个 jcarousel 实例的初始化方式类似。
更新: 我已经尝试过:
$('#jcarousel1').jcarousel('list').stop();

这会停止移动(滚动),但我无法在鼠标移出后以相同的位置重新开始移动。
更新1:我也尝试了在鼠标移出时重新启动它。
$('#jcarousel1').jcarousel('destroy')
$('#jcarousel1').jcarousel( arrayWithInitOptions )

但这会产生一个不良影响,因为它从轮播的开头开始运动(重新加载),从第一项开始,我希望从鼠标悬停时的同一位置重新启动。

1
http://api.jquery.com/clearQueue/ - ediblecode
我从你的例子中看到它已经运行了。你能发表一下你的答案吗? - Yan Brunet
我可以ctrl+u,没有问题,但我希望解决方案能够发布(供社区使用)。 - Yan Brunet
根据你提供的链接,看起来你已经解决了这个问题,对吗? - TimSPQR
1个回答

1
您可以使用类似这样的内容。
    <script type="text/javascript" src="jquery.jcarousel.min.js"></script>
    <script type="text/javascript">
    function mycarousel_initCallback(carousel)
    {
        // Pause autoscrolling if the user moves with the cursor over the clip.
        carousel.clip.hover(function() {
            carousel.stopAuto();
        }, function() {
            carousel.startAuto();
        });
    };

    jQ=jQuery.noConflict();
    jQ(document).ready(function() {
        jQ('#mycarousel').jcarousel({
                    auto: 3,
                    animation: 1000,
                    scroll: 1,
                    easing: "linear",
                    wrap: 'circular',
                    initCallback: mycarousel_initCallback
        });
    });

    </script>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接