2013-03-18 126 views
1

我試圖做一些類似於github的項目查看器,點擊鏈接後,框移動到場景左側,然後另一個框從右側移動。Zepto動畫回調沒有動畫

我試圖做到這一點的方法是隻有一個動畫的div,當你點擊鏈接div移動到屏幕左側。然後在第一個animate()的回調中,我調用.css將它移動到頁面的右側(沒有動畫,所以它只是跳到那裏),然後再次將它移動到右側。

這裏的JS

$('.mLink').on('click', function(e) { 
    var 
      marginR = $('#mover').css('margin-right'), 
      marginL = $('#mover').css('margin-left'); 

    $('#mover').animate({ 
      'margin-left': '-1500px', 
      'margin-right': '1500px' 
    }, 500, 'ease-out', function() { 

      $('#mover').css({ 
        'margin-left': '1500px', 
        'margin-right': '-1500px' 
      }); 

      $('#mover').animate({ 
        'margin-left': marginL, 
        'margin-right': marginR 
      }, 500, 'ease-in'); 
    }); 
}); 

所以會發生什麼是它的動畫在屏幕的左側,然後跳轉到右側正常,但隨後出現在正確的位置,而不真正做動畫。我很好奇爲什麼會發生這種情況,因爲它意味着animate()正在執行而不顯示動畫?

編輯:澄清

+0

例如www.petejodo.com/newindex.html – 2013-03-18 06:02:04

+0

我發現你已經使它易於緩解。在鏈接中工作正常,您對此代碼有什麼期望?請。用更多的詞語定義,並且CLARITY謝謝。 – MarmiK 2013-03-18 06:16:40

+0

我希望它從右側向左側滑動。那是爲你發生了什麼?如果是的話,你在瀏覽什麼瀏覽器?編輯對我來說(鉻和火狐)向左滑動工作得很好,但然後它只是彈出到沒有動畫的地方(第二動畫) – 2013-03-18 06:20:39

回答

3

嘗試這樣的事情,因爲我無法看到所有的依賴關係,因此無法爲同一創建小提琴,

$('.mLink').on('click', function(e) { 
    var 
      marginR = $('#mover').css('margin-right'), 
      marginL = $('#mover').css('margin-left'); 

    $('#mover').animate({ 
      'margin-left': '-1500px', 
      'margin-right': '1500px' 
    }, 500, 'ease-out', function() { 

      $('#mover').animate({ 
       'margin-left': ' 1500px', 
       'margin-right': '-1500px' 
      }, 500, 'ease-in', function() { 

        $('#mover').animate({ 
          'margin-left': marginL, 
          'margin-right': marginR 
        }, 500, 'ease-in', function(){return false;}); 
      }); 
    }); 
}); 

我希望這會做,因爲你想要兩種效果你可以有兩個功能。 :)或更多,如果你想或所有在一個功能。

+0

這是出於某種原因,我不知道爲什麼,現在我只是搞亂它,導致動畫從右邊進來是有點laggy /不光滑。謝謝!爲了更好的解決方案,我會補充答案,但現在不標記它是正確的。我會標記它是正確的,如果我可以使用你回​​答的動畫獲得動畫順利,或者如果沒有其他人回答 – 2013-03-18 17:00:19

+0

,而最終我並不真的很喜歡這種效果,並且正在改變它,這是正確的解決方案。不需要返回false的最終回調。謝謝 – 2013-03-18 19:01:26