我正在努力制作一个在用户鼠标位于箭头上方时连续移动的滑块。它可以工作,但是即使内容结束,它仍会继续移动。

如何停止播放,以便在查看所有幻灯片后禁用前进/后退动作,或者在查看第一张幻灯片时不能向后移动?

我的代码如下-如果我所拥有的不好,可以使用其他方法来实现这种类型的滑块。

            $(document).ready(function() {
                var timer;

                $("#leftarrow").hover(function() {
                    timer = setInterval(function() {slideLeft();}, 50);
                }, function() {
                    clearInterval(timer);
                });


            $("#rightarrow").hover(function() {
                    timer = setInterval(function() {slideRight();}, 50);
                }, function() {
                    clearInterval(timer);
                });



            function slideLeft() {
                $("img#background").stop().animate({
                    'left': '-=200px'
                }, 50);
                $(".mid").stop().animate({
                    'left': '-=20px'
                }, 50);
                console.log('alert');

            }

            function slideRight() {
                $("img#background").stop().animate({
                    'left': '-=200px'
                }, 50);
                $(".mid").stop().animate({
                    'left': '+=20px'
                }, 50);
            }


            });




这是我的滑块的小提琴:http://jsfiddle.net/rYYDv/

最佳答案

在以下情况下,您可以使用其他功能:

对于左滑:

if(($(".mid").position().left) >= -500){ .. }


对于右滑:

if(($(".mid").position().left) <= -10){ .. }


缺点:您必须手动处理正确的值。如果图片不经常更改,这不是问题。

您可能还应该添加其他其他内容,以确保正确的最终位置(对于动画左属性)。但是我认为你明白了。

http://jsfiddle.net/rYYDv/2/

10-06 02:48