Jquery ScrollTo Easing

时间:2010-11-25 09:11:01

标签: jquery scrollto easing-functions

无法将缓动方法应用于Jquery ScrollTo:

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

这不会让任何事情变得轻松...... 我现在开始使用jquery(长时间使用原型)所以这肯定是我的错误。 我需要一个缓动插件来实现这一目标吗?这个插件的缓动选项有什么用(如果有的话)?文档不清楚这一点。 感谢。

4 个答案:

答案 0 :(得分:9)

来自jQuery:

jQuery库中唯一的缓动实现是默认的,称为swing,以及以恒定速度进展的实现,称为线性

所以easing: 'linear'不应该显示任何内容。 试试easing: 'swing'

答案 1 :(得分:5)

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

可以在这里找到一系列优惠:

http://easings.net/

答案 2 :(得分:1)

linear是宽松的默认选项:线性动画=>直到一秒钟的点。

尝试easing:'elasout'

答案 3 :(得分:1)

我知道这是一个老线程,但我发现它并且它帮助了我。正如Palmsey在其中一篇评论中所提到的,scrollTo Demo展示了一个使用缓动的例子,但实际上没有提到它从http://gsgd.co.uk/sandbox/jquery/easing/的缓动插件中借用了一小段代码。 scrollTo上的演示在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;
    };

但是,如果你包含上面提到的整个缓动插件,你可以使用http://easings.net/中提到的任何功能