Плавность скролла.
Здравствуйте. Существует ли возможность с помощью JS настраивать плавность прокрутки страницы? Если да, то не могли бы вы описать эту возможность? Желательно поподробнее и попроще, т.к. я новичок в этом языке. Заранее благодарю.
|
Got,
Нельзя. |
Как вариант:
var Scroll = function ( element, to, time ) { var start = new Date().getTime(), from = element.scrollTop; if (element.animated) return; element.animated = true; setTimeout(function () { var progress = (new Date().getTime() - start) / time; element.scrollTop = (to - from) * progress + from; if (progress < 1) { setTimeout(arguments.callee, 10); element.animated = false; } }, 10); }; document.onmousewheel = function (event) { Scroll(document.body, document.body.scrollTop + event.detail * 30, 300); return false; }; Вариант для Opera и FF, но и под остальные браузеры можно подогнать. |
еще что-то типа такого наверное нужно добавить/подправить, дабы onmousewheel поддрежать:
document.addEventListener('DOMMouseScroll', function(event) { Scroll(document.body, document.body.scrollTop + event.detail * 30, 300); return false; }, false); |
monolithed, return false при добавлении обработчика через addEventListener/attachEvent не сработает, нужен event.preventDefault() (для IE — event.returnValue = false). Отвыкайте от jQuery.
|
exec да я не про отмену действия по умолчанию. onmousewheel не кроссбраузерно как минимум для firefox, в этом случае его поддержку можно осуществить через DOMMouseScroll
|
Благодарю за ответы.
|
Часовой пояс GMT +3, время: 07:12. |