当该div的样式“左”达到“ 0”或“ 0px”时,如何防止div进一步向左滚动?现在,我正在使用动画自定义效果向左和向右滚动div以显示隐藏的溢出,但是当div在样式上达到“ 0”或“ 0px”时:向左,我希望防止用户向左滚动到那里没有内容,只有空白。我目前有以下代码似乎无法按照我想要的方式工作:

$(document).ready(function(){
if ($("#ajax-matched-results").css('left') == '0' || '0px') {
    $("#scrollLeft-results").click(function() {
    $(".matched-results-items").animate({"left": "0px"}, "slow");
    });
    $("#scrollRight-results").click(function() {
    $(".matched-results-items").animate({"left": "-=547px"}, "slow");
    });
} else {
    $("#scrollLeft-results").click(function() {
    $(".matched-results-items").animate({"left": "+=547px"}, "slow");
    });
    $("#scrollRight-results").click(function() {
    $(".matched-results-items").animate({"left": "-=547px"}, "slow");
    });
    }
});


谢谢你的帮助!

最佳答案

首先,if语句不应该位于click事件中吗?我完全看不到或者最多不会执行一次。

同样,您的第一个if语句将始终为true。你想要的是

if ($("#ajax-matched-results").css('left') == '0' || $("#ajax-matched-results").css('left') == '0px')


另外,我也不是100%肯定“-= 547px”可以像预期的那样工作。您是否要在每次单击时将其增加该值,还是要将它们设置为该值?我假设您想每次增加它。

这或多或少是您应该拥有的:

$(function(){
    // this actually eliminates the need for the above if statement
    // assuming you only have one thing you're going to animate
    var position = 0;

    // move object right 547px regardless of current position
    $('#scrollRight-results').click(function(){
        // animate regardless?
        // unless you're setting right side bounds as well
        position += 547;
        $('id').animate({'left': position}, 'slow');
    });

    // move object left 547px if not already at 0
    $('#scrollLeft-results').click(function(){
        if (position != 0){
            position -= 547;
            $('id').animate({'left': position}, 'slow');
        }
    });
})

关于javascript - jQuery:如何在样式为left == 0或0px时防止进一步向左侧动画?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1679020/

10-11 11:47