Показать сообщение отдельно
  #3 (permalink)  
Старый 14.12.2010, 10:12
Профессор
Отправить личное сообщение для exec Посмотреть профиль Найти все сообщения от exec
 
Регистрация: 21.01.2010
Сообщений: 1,022

Как вариант:

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, но и под остальные браузеры можно подогнать.
Ответить с цитированием