0

我有一个 jQuery Slider,它可以很好地滑过。但是,如果滑块到达第一个孩子,我希望滑块不向左滑动,如果到达最后一个孩子,则不要向右滑动

我尝试在我拥有的脚本之上添加它,但它似乎没有任何影响:

$('.yearslist').find('.li:last-child').stop(true, true);

我创建了一个jsFiddle或在下面查看我的 JS:

js/js.js

$(document).ready (Initialize);

function Initialize(){
    InitList();
}

var moveLeft = false;
var moveRight = false;

var left = function() {
    if (moveLeft)

        $(".yearslist").animate({ "marginLeft": "-=5px" }, 50, 'linear', left);
                    $('.yearslist').find('li:first-child').stop(true, true);


};

var right = function() {
    if(moveRight)

        $(".yearslist").animate({ "marginLeft": "+=5px" }, 50, 'linear', right);
                                $('.yearslist').find('.li:last-child').stop(true, true);


};

function InitList() {
    $("span#NavigateForward").hover(
        function() { moveLeft=true; left(); },
        function() { moveLeft=false; }
    );
    $("span#NavigateBackward").hover(
        function() { moveRight=true; right(); },
        function() { moveRight=false; }
    );
}
4

1 回答 1

1

你可以这样做:

if ($('.yearslist').find('li:last-child').offset().left < $('#years').width() - 120) {
    moveLeft = false;
}

if ($('.yearslist').find('li:first-child').offset().left > 86) {
    moveRight = false;
}

看看这个Fiddle

您必须调整值 120 和 86 以使其按您的意愿包装(或创建变量)。这不是最好的解决方案,但是对于您已经完成的工作,我看不到其他解决方案。希望它会有所帮助。

于 2013-10-09T15:21:36.640 回答