Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 14.12.2010, 08:36
Got Got вне форума
Новичок на форуме
Отправить личное сообщение для Got Посмотреть профиль Найти все сообщения от Got
 
Регистрация: 14.12.2010
Сообщений: 2

Плавность скролла.
Здравствуйте. Существует ли возможность с помощью JS настраивать плавность прокрутки страницы? Если да, то не могли бы вы описать эту возможность? Желательно поподробнее и попроще, т.к. я новичок в этом языке. Заранее благодарю.
Ответить с цитированием
  #2 (permalink)  
Старый 14.12.2010, 09:26
Аватар для Skipp
.
Отправить личное сообщение для Skipp Посмотреть профиль Найти все сообщения от Skipp
 
Регистрация: 30.03.2010
Сообщений: 1,813

Got,
Нельзя.
__________________
.
Ответить с цитированием
  #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, но и под остальные браузеры можно подогнать.
Ответить с цитированием
  #4 (permalink)  
Старый 14.12.2010, 10:38
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

еще что-то типа такого наверное нужно добавить/подправить, дабы onmousewheel поддрежать:
document.addEventListener('DOMMouseScroll', function(event) {
    Scroll(document.body, document.body.scrollTop + event.detail * 30, 300);
    return false;
}, false);

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

monolithed, return false при добавлении обработчика через addEventListener/attachEvent не сработает, нужен event.preventDefault() (для IE — event.returnValue = false). Отвыкайте от jQuery.
Ответить с цитированием
  #6 (permalink)  
Старый 14.12.2010, 11:30
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

exec да я не про отмену действия по умолчанию. onmousewheel не кроссбраузерно как минимум для firefox, в этом случае его поддержку можно осуществить через DOMMouseScroll

Последний раз редактировалось monolithed, 14.12.2010 в 16:48.
Ответить с цитированием
  #7 (permalink)  
Старый 15.12.2010, 01:32
Got Got вне форума
Новичок на форуме
Отправить личное сообщение для Got Посмотреть профиль Найти все сообщения от Got
 
Регистрация: 14.12.2010
Сообщений: 2

Благодарю за ответы.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Надо узнать наличие скролла и его ширину Snipe Элементы интерфейса 1 26.11.2010 15:00
Расчет позиции с учетом скролла cker Элементы интерфейса 2 10.05.2009 18:49
клик по ссылке и сбивание скролла жбан Общие вопросы Javascript 3 06.05.2009 10:32