Jquery ScrollTo Easing
-
28-09-2019 - |
Question
Can not appliquer une méthode pour faciliter Jquery ScrollTo:
$("#scroller").scrollTo(target,1000,{axis:'x',easing:'linear'});
quoi que ce soit facilité Indifférent Fume ... Im commencer à utiliser jquery maintenant (été en utilisant un prototype pour longtemps) donc c'est sûrement mon erreur. Ai-je besoin d'un plugin assouplissement pour y parvenir? Quelles sont les options pour faciliter ce plugin (le cas échéant)? La documentation est pas claire à ce sujet. Merci.
La solution
De jQuery:
Les implémentations d'assouplissement uniquement dans la bibliothèque jQuery sont la valeur par défaut, appelé swing, et qui progresse à un rythme constant, appelé linéaire .
easing: 'linear'
n'est pas censé montrer quoi que ce soit.
Essayez easing: 'swing'
.
Autres conseils
$("#scroller").scrollTo(target, 1000, {easing: 'easeInOutCirc'});
Et une grande liste des assouplissements peuvent être trouvés ici:
linear
est l'option par défaut d'assouplissement. Animation linéaire => directement au point dans une seconde
essayer easing:'elasout'
Je sais que c'est un vieux fil, mais je l'ai trouvé et il m'a aidé. Comme Palmsey a mentionné dans l'un des commentaires, la démonstration scrollTo montre un exemple d'utilisation assouplissement, mais ne mentionne pas en fait qu'il a emprunté un petit bout de code du plugin assouplissement trouvé à http://gsgd.co.uk/sandbox/jquery/easing/ . La démo sur scrollTo comprend ce code dans le fichier init.js
//borrowed from jQuery easing plugin
//http://gsgd.co.uk/sandbox/jquery.easing.php
$.easing.elasout = function(x, t, b, c, d) {
var s=1.70158;var p=0;var a=c;
if (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3;
if (a < Math.abs(c)) { a=c; var s=p/4; }
else var s = p/(2*Math.PI) * Math.asin (c/a);
return a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b;
};
Toutefois, si vous incluez l'ensemble détente plug-in mentionné ci-dessus, vous pouvez utiliser l'une des fonctions mentionnées à http://easings.net/