2012-04-02 66 views
0

我是JS中的新手。現在我正在處理一個效果,當我第一次頁面滾動時,然後自然動畫動畫開始,但它創建一個問題,因爲當我滾動元素動畫變得快。頁面滾動時的平滑自然運動

檢查這個你有更多的想法。

http://jsfiddle.net/byvLy/

+0

你建立什麼樣的運動? – Joseph 2012-04-02 12:41:30

+0

我不確定你想要做什麼?怎麼樣:http://jsfiddle.net/byvLy/2/ – codef0rmer 2012-04-02 12:44:05

+0

@約瑟夫我喜歡這種類型的議案在頁面滾動http://jsfiddle.net/byvLy/5/ – sandeep 2012-04-02 12:51:20

回答

2

我知道這是一個擺動箱(想通了由於Math.sin()

但是,你必須要注意的是滾動事件滾動期間每隔幾毫秒解僱。在您的代碼中,每次觸發滾動事件時,都會調用動畫並創建一個間隔。這就是爲什麼你的動畫很刺激;

try this instead

$(function() { 

    $(window).on('scroll', function() { 
     swing.start('.cloud1, .cloud2'); 
    }); 

    var swing = (function() { 
     var animated = false; 

     function startAnimation(selector) { 
      if (!animated) { 
       var banner = $(selector); 
       var start = 0; 

       animated = true; 
       window.setInterval(function() { 
        banner.css('left', 100 * Math.sin(start) + 80); 
        start += 0.1; 
       }, 30); 
      } 
     } 
     return { 
      start: startAnimation 
     } 
    }()); 
});​ 
+0

+1,但動畫速度很快 – sandeep 2012-04-02 12:54:21

+0

我改變了時間間隔和開始變量的增量,使擺動更加明顯。把它們改回來。 – Joseph 2012-04-02 12:55:46

+0

謝謝,這是偉大的:) – sandeep 2012-04-02 12:59:16