Smoothwheel работает только в Chrome

Я хочу использовать этот фрагмент кода для обеспечения плавной прокрутки на моем веб-сайте. Он работает в Chrome, но не в Firefox и IE.

Вы можете вызвать Smoothwheel с помощью:

$(*container*).smoothWheel();

Я использовал "тело" в качестве контейнера, но вы также можете использовать контейнер div. Использование DIV фактически делает работу в Firefox и IE, но у меня есть много событий прокрутки, которые получают облажался при замене $ (окно).scroll с $ ( "# контейнер"). Прокрутить..

Итак, мой вопрос: как получить get $ ('body'). SmoothWheel() работает в других браузерах?

Пример в JSFiddle

Если это невозможно, то я хотел бы знать, как получить такие события прокрутки, как эта, работающая внутри контейнера:

currentTop = $(this).scrollTop();
sectionTop = $('#section').scrollTop();
if (currentTop >= sectionTop) {
 //
}
1 ответ

Я была такая же проблема.

Вам либо нужно установить:

html, body {
 height: 100%;
}

на вашем css, который будет работать в некоторых браузерах, но вызовет проблемы с макетами, или:

$(document).smoothWheel();

который будет работать на всех браузерах, кроме Chrome.

Я согласен с тем, что манипулирование прокруткой не является идеальным, но если вы используете эти настройки:

fricton = 0.9, // higher value for slower deceleration
vy = 0,
stepAmt = 5,
minMovement = 0.1,
ts = 0.1;

он чувствует себя очень естественно.

Я буду держать вас в курсе, если я выясню кросс-браузерный способ сделать это.

licensed under cc by-sa 3.0 with attribution.