jquery动画和.offset

时间:2011-04-22 20:15:45

标签: javascript jquery

基本上我有一个780像素长的图像,我有一个窗口,你一次只能看到390像素。有左右箭头,因此您可以单向滚动,然后滚动另一个。我希望一旦你到达0px或-780px的图像末尾就会禁用箭头。我尝试了下面的代码只是为了看看我是否朝着正确的方向前进,但与“>”一起使用签署,我需要它与“==”:

$(function() {

    $(".big-fwd img").click(function() {
        var offset = $(".wrap-nga").offset();


        $(".wrap-nga").animate({
            left: "-=390px"
        })
        if (offset > "-780px") {
            alert("hello");
        }
    });

第二个问题是,当我编写代码时,我真的想要而不是警报,一切都没有发生:

$(function() {

    $(".big-fwd img").click(function() {
        var offset = $(".wrap-nga").offset();


        $(".wrap-nga").animate({
            left: "-=390px"
        })
        if (offset > "-780px") {
            $(".big-fwd img").removeAttr();
        }
    });

我真的很茫然。我试过“位置”而不是“偏移”,但这不是问题。 任何帮助都会很棒。您还可以通过转到http://www.lieslswogger.com并点击图库中的某个图片,更好地了解我要做的事情。谢谢!!

3 个答案:

答案 0 :(得分:2)

我认为你的比较问题是因为$ .offset()的结果是一个对象,而不是一个值。

来自http://api.jquery.com/offset/

  

.offset()返回一个包含top和left属性的对象。

你可能想要使用offset.left。

希望有所帮助!

答案 1 :(得分:1)

在制作动画之前进行偏移检查。在这种情况下,您还需要比较不等式的数值。

$(".big-fwd img").click(function(){  
    var offset = $(".wrap-nga").offset();
    if(offset.left < 780)
        $(".wrap-nga").animate({ left: "-=390px" })
});

同样背面.big-back img

if(offset.left > 0) // proceed with animation

答案 2 :(得分:0)

确保关闭功能。它应该是:

$(function() {    
    $(".big-fwd img").click(function() {
        var offset = $(".wrap-nga").offset();

        $(".wrap-nga").animate({
            left: "-=390px"
        }) if (offset > "-780px") {
            $(".big-fwd img").removeAttr();
        }
    });
});