2012-05-02 34 views
0

我通過互聯網搜索了3個多小時,沒有任何建議在我的代碼中工作。我試圖做的是每次點擊時將圖片一張一張地滑動到左側(總共3張圖片),當最後一張圖片在屏幕上時,請停止向左滑動並滑回第一張圖片。要做到這一點,我需要檢測第一張圖片的左邊距,當它碰到某個點(左邊180em)並將其與「ems」值(代碼如下)進行比較時。 「如果」陳述從不發射,它總是指向「其他」。我嘗試使用「$('#picture1')。offsetLeft」,「$('#picture1')。layerX」,「$('#')獲得第一張圖片的左邊界位置(或邊距)圖片1'),「左」,但他們都沒有工作。如何在javascript中獲取圖像的左邊緣爲ems

如果你可以指導我到另一個網站,另一個問題在Stackoverflow或給我一個解決方案,我將不勝感激。

注意:如果在我的代碼中存在錯誤或者我的問題糾正了我,我對javascript非常新。謝謝。

var position = parseInt(jQuery("#picture1").css("margin-left")); 
var left_border = '180ems'; 
    $(function() { 
     $(".button").click(function() { 
      if (position > 180ems) { 
       $("#picture1").animate({ 
        left: '-=60em' 
       }, 600); 
       $("#picture2").animate({ 
        left: '-=60em' 
       }, 600); 
       $("#picture3").animate({ 
        left: '-=60em' 
       }, 600); 
      } 
      else { 
       $("#picture1").animate({ 
        left: '+=180em' 
       }, 600); 
       $("picture2").animate({ 
        left: '+=120em' 
       }, 600); 
       $("#picture3").animate({ 
        left: '+=60em' 
       }, 600); 
      }; 
     }); 

回答

0

你總是可以得到的像素值,然後嘗試將其轉換爲EMS,看到這個問題jQuery/JavaScript: convert pixels to em in a easy way

編輯:或者你可以把一個無形的元素180ems從左邊,然後取此元素的像素值,然後可以使用該值進行比較。

+0

我會明天試試這兩個,並讓你知道。我更喜歡第二個想法,我可能會使用它很多其他的東西。非常感謝你! –

+0

因此,我最終使用'.position()。left'來確定位置爲一個整數,並通過檢測瀏覽器的字體大小將其轉換爲ems。感謝您的建議。 –

相關問題