Плавность скролла.
Здравствуйте. Существует ли возможность с помощью 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, время: 11:42. |