2017-07-02 2 views
0

Einfache Frage, aber ich kann keinen Weg finden, es zu tun. Ich habe eine jQuery Animation, die die Seite zu einem Element scrollt:easy-in mit jQuery Animation

$('html, body').animate({scrollTop: $("#element").offset().top},1000); 

Ich möchte die Animation einen langsamen Start haben und einen schnellen Ende (einfache in in css). Es sollte so funktionieren:

$('html, body').animate({scrollTop: $("#maine").offset().top},1000, "ease-in"); 

Gibt es eine Möglichkeit, dies zu tun?

+1

man konnte es in zwei Animationsschritte tun, wenn Sie jquery nicht verwenden möchten Ui. Im Wesentlichen ein .animate ({scrollTop: ($ maine.top - current) * .1 + aktueller}, 500) .animate ({original}, 200) – aduss

+0

Aduss 'Antwort ist richtig, und die einzige Möglichkeit, es ohne zu tun externe Bibliothek wie animate.css – JonLuca

Antwort

0

Es gibt nur zwei Beschleunigungsfunktionen in plain jQuery: linear und swing.

die Black Box klicken, um zu sehen, wie es mit Schwung funktioniert: https://jsfiddle.net/o95dq69m/

$(this).animate({'top': topVal}, 500, 'swing', function(){}); 

Wenn Sie mit zusätzlichen Bibliotheken keine Angst haben, gehen Sie vor und versuchen jQuery-UI gibt eine Tonne Lockerung ist Funktionen dort zur Verfügung, wie easeInExp: https://jsfiddle.net/o95dq69m/1/

$(this).animate({'top': topVal}, 500, 'easeInExpo', function(){});