2012-04-02 8 views
0

Ich bin ein Neuling in JS. Im Moment arbeite ich an einem Effekt, bei dem ich will, wenn die Seite zuerst scrollt, dann beginnt die natürliche Bewegungsanimation, aber es erzeugt ein Problem, denn wenn ich scrolle, wird die Elementanimation schnell.Glatte natürliche Bewegung, wenn Seite blättern

Überprüfen Sie diese mehr Sie haben die Idee.

http://jsfiddle.net/byvLy/

+0

welche Art von Bewegung bauen Sie? – Joseph

+0

Ich bin mir nicht sicher, was versuchst du zu tun? Wie wäre es damit: http://jsfiddle.net/byvLy/2/ – codef0rmer

+0

@Joseph Ich mag diese Art von Bewegung auf der Seite blättern http://jsfiddle.net/byvLy/5/ – sandeep

Antwort

2

ich weiß, dass dies ein Schwingkasten (es aufgrund der Math.sin() heraus)

jedoch müssen Sie beachten, dass Ereignis Scrollen wird beim Scrollen alle paar Millisekunden gebrannt. In Ihrem Code rufen Sie animate auf und erstellen jedes Mal ein Intervall, wenn das scroll-Ereignis ausgelöst wird. deshalb ist deine Animation nervös;

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 aber Animation ist schnell – sandeep

+0

Ich änderte das Intervall und die Variable in der Startvariablen, um den Schwung sichtbarer zu machen. Ändere sie einfach zurück. – Joseph

+0

danke das ist toll :) – sandeep