2010-11-25 30 views
7

appliquer une méthode Problémes d'assouplissement à Jquery ScrollTo:Jquery ScrollTo Alléger

$("#scroller").scrollTo(target,1000,{axis:'x',easing:'linear'}); 

Cette facilité rien ... Indifférent Fume Im commencer à utiliser jquery maintenant (été en utilisant un prototype pour longtemps) est donc ce sûrement mon erreur. Ai-je besoin d'un plugin d'accélération pour y parvenir? Quelles sont les options d'accélération pour ce plugin (le cas échéant)? La documentation n'est pas claire à ce sujet. Merci.

+0

Qu'est-ce que le plugin utilisez-vous? Cette méthode ne fait pas partie de l'API jQuery. –

Répondre

9

De jQuery:

Le seul assouplissement mises en œuvre dans la bibliothèque jQuery sont la valeur par défaut, appelé swing, et qui progresse à un rythme constant, appelé linéaire.

Donc, easing: 'linear' ne doit rien afficher. Essayez easing: 'swing'.

+0

Ça marche. L'effet de swing typique. Merci. – JoaoPedro

1

linear est l'option par défaut d'assouplissement: animation linéaire => directement au point dans une seconde.

essayer easing:'elasout'

+0

non. 'elasout' le brise. Ce serait bien, mais non. – JoaoPedro

+0

il ne casse rien, c'est un type de scrollTo sur leur page d'accueil. Plus particulièrement, c'est celui utilisé sur leur démo: http://demos.flesler.com/jquery/scrollTo/ (cliquez sur 'easing'). Si vous vouliez un assouplissement précis (il y en a beaucoup plus), vous devriez le préciser. – Shikiryu

+0

Si vous regardez le code, cette fonction d'accélération est dans init.js et non dans scrollTo par défaut. Il fait partie du plugin jQuery easing: http://gsgd.co.uk/sandbox/jquery.easing.php – palmsey

5
$("#scroller").scrollTo(target, 1000, {easing: 'easeInOutCirc'}); 

Et une grande liste de lissages se trouve ici:

http://easings.net/

+0

+1 pour le lien de easings.net! :) –

1

Je sais c'est un vieux fil, mais je l'ai trouvé et il m'a aidé. Comme l'a mentionné Palmsey dans l'un des commentaires, la démo scrollTo montre un exemple d'utilisation de l'accélération, mais ne mentionne pas en fait qu'elle a emprunté un petit extrait de code du plugin d'accélération trouvé au 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 plugiciel mentionné ci-dessus, vous pouvez utiliser l'une des fonctions mentionnées à http://easings.net/