2011-04-22 73 views
0

基本上我有一个780像素长的图像,我有一个窗口,通过它你一次只能看到390px。有左和右箭头,所以你可以滚动一种方式,然后另一种。我希望一旦您在0px或-780px的图像末尾处停用箭头。我曾尝试下面的代码只是为了看看我在正确的方向我要去但它仅作品用“>”符号,我需要用它来工作,“==”:jquery动画和.offset

$(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并点击图库中的一个图像,更好地了解我正在尝试做什么。谢谢!!

回答

0

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

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

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

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

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

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

你可能想要使用offset.left,在你的情况。

希望有帮助!

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 
+0

非常感谢你的帮助 - 抱歉,我没有回应早些时候,得到了与另一个项目牵制。在动画制作之前做偏移检查对于向前移动图像非常合适(。“big-fwd img”),但出于某种原因不适用于(。“big-back img”)。图像继续滚动过去0.任何人有任何想法,为什么这可能是?再次感谢您的帮助! – liesl 2011-04-27 16:04:54

+0

只是检查左边的属性,或许'0'不是正确的值。 – 2011-04-27 17:49:29