2012-09-20 49 views
1

我有一個滑動手勢啓用畫廊。通過向左/向右滑動,用戶導航畫廊。我需要限制滑動div的位置,使其不會偏離軌道,即一旦你到達頁面,顯然所有圖像都在右側,因此我不希望用戶向左滑動(到空白處) 。大於選擇器不工作

我試圖使用「大於」,但它不工作。

var theWidth = $(window).width(); 

function processingRoutine() { 
    var swipedElement = document.getElementById(triggerElementID); 

    if (swipeDirection == 'left') { 
     $(".frame").animate({marginLeft: '-='+theWidth}); 
    } else if (swipeDirection == 'right') { 
     $(".frame").animate({marginLeft: '+='+theWidth}); 

     if (parseInt($(".frame").css("margin-left")) > 1) { 
      $(".frame").animate({marginLeft: "0px"}); 
     } 
    } 
} 

您可以查看整個源在這裏:http://joinersart.co.uk/mtest

+2

我沒有看到你使用的不是選擇更大的...(什麼是張貼在這裏) –

+1

' $(「.frame」).css(「margin-left」)'出現在'0px' ..你可能必須從返回的字符串中刪除'px' –

+0

@wirey他使用'parseInt()' '0px'很好,但是他應該提供一個基數。 'parseInt('0px',10);' – Mark

回答

0

我做了一個簡單的錯誤:

我感到困惑,其中利潤率左應註冊了 「不走」 區域。我最初認爲,如果剩餘邊距超過1px就足夠了。事實上,它實際上應該減去我正在移動的數量。

所以不是:

if (parseInt($(".frame").css("margin-left")) > 1){... 

它應該是:

if (parseInt($(".frame").css("margin-left")) > -theWidth){... 
0

我相信你的問題是與parseInt()。因爲margin-left的值可以是'0px'parseInt()將使用8我相信的基數。 (已棄用)如果使用parseInt(frame.css("margin-left"), 10),應使用10(十進制)的基數將字符串解析爲正確的整數值。

+0

我不明白爲什麼會是這個問題。無論使用哪個基數,「0px」仍然是「0」。 –

1

變化:

$(".frame").animate({margin-left: "0px"}); 

要:

$(".frame").animate({marginLeft: "0px"}); 
+0

感謝您的回覆。我用你的代碼更新了我的示例頁面,但可悲的是沒有運氣。 http://joinersart.co.uk/mtest –