Jquery ScrollTo Easing - PullRequest
       9

Jquery ScrollTo Easing

7 голосов
/ 25 ноября 2010

Невозможно применить метод замедления к Jquery ScrollTo:

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

Это ничего не облегчает ... Я начинаю использовать jquery сейчас (давно использую прототип), так что это, безусловно, мойошибка.Нужен ли мне плагин смягчения для достижения этой цели?Какие варианты смягчения для этого плагина (если есть)?В документации не ясно об этом.Спасибо.

Ответы [ 4 ]

9 голосов
/ 25 ноября 2010

Из jQuery:

Единственными реализациями замедления в библиотеке jQuery являются настройки по умолчанию, называемые swing, и такие, которые прогрессируют с постоянной скоростью, называемые линейными .

Так что easing: 'linear' не должно ничего показывать.Попробуйте easing: 'swing'.

5 голосов
/ 04 ноября 2013
$("#scroller").scrollTo(target, 1000, {easing: 'easeInOutCirc'});

А большой список послаблений можно найти здесь:

http://easings.net/

1 голос
/ 06 мая 2014

Я знаю, что это старая ветка, но я нашел ее, и она мне помогла. Как упомянул Palmsey в одном из комментариев, демоверсия scrollTo демонстрирует пример использования замедления, но на самом деле не упоминает, что она позаимствовала небольшой фрагмент кода из плагина замедления, найденного в 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/

1 голос
/ 25 ноября 2010

linear - опция по умолчанию для замедления: линейная анимация => прямо к точке за секунду.

try easing:'elasout'

...