Как реализовать JQuery замедление в этой функции прокрутки окна? - PullRequest
8 голосов
/ 01 июня 2010

С помощью этого кода я смог зафиксировать движение колесика мыши и применить его к горизонтальным полосам прокрутки вместо вертикальной по умолчанию.

$('html').bind('mousewheel', function(event, delta) {
   window.parent.scrollBy(-120 * delta, 0);
   return false;
});

Можно ли как-нибудь добавить эту анимацию JQuery замедления к движению прокрутки?

// t: current time, b: begInnIng value, c: change In value, d: duration
jQuery.extend( jQuery.easing, {
   easeInOutBack: function (x, t, b, c, d, s) {
        if (s == undefined) s = 1.70158; 
        if ((t/=d/2) < 1) return c/2*(t*t*(((s*=(1.525))+1)*t - s)) + b;
        return c/2*((t-=2)*t*(((s*=(1.525))+1)*t + s) + 2) + b;
   }
});

Заранее большое спасибо!

1 Ответ

1 голос
/ 02 июня 2010

Я думаю, что вам нужен плагин scrollTo. кажется, отвечает всем требованиям, хотя я не использовал это лично. в принципе должен быть в состоянии назвать это так

$.scrollTo( -120*delta, {duration:1000,easing:'easeInOutBack',axis:'x'} )

найти демо-версию плагина здесь . сайт плагина jquery в настоящее время не работает, но при его резервном копировании плагин можно найти здесь

...