Если использовать 1 версию, то конечно. Но ведь есть и 2 и даже третья в виде альфа-версии. А чем выше версия, тем хуже поддержка старых обозревателей.
Если использовать 1 версию, то конечно. Но не с просто есть и 2 и даже третья в виде альфа-версии. А чем выше версия, тем хуже поддержка старых обозревателей.
fajjet: Ну так пройдитесь по моему коду, там даже комментарии есть.
В целом процесс такой:
1. Получаем координаты элемента относительно прокрутки, используя метод getBoundingClientRect.
2. Вычисляем среднюю скорость либо с самого начала либо при каждом вызове интервала (3 пункт). Моя формула такова: where*length/(speed||1000), где where это 1 или -1, сторона прокрутки, leength - расстояние до точки, в которую скроллим от текущей прокрутки. И speed - скорость,
3. Запускаем интервал (скорость - 1), который скроллит на вычесленую скорость с помощью метода scrollTo. И тут важный момент - останавливать таймер надо при условии, что текущая прокрутка >= целевой, т.к, может перемахнуть в связи с тем, что скорость может равняться дробному числу, а scrollTo скроллит только целые.
Stalker_RED: в том то и дело, что валидатор ругается на них и "можно" то оно можно, как и пользовательские теги, но для кого тогда стандарты? Для кого data-атрибуты?
fajjet: если уклоняться от разжеванного ответа, то мы добавляем псевдомассиву this.children метод массивов indexOf. Потом вызываем его, просим найти индекс кликнутого элемента в списке детей родительского блока.
LittleFatNinja: ну тогда это уже другое дело. Но все же, лучше так не делать....смысла не имеет, если только при первом вызове не формируются какое-то чудо данные, на которые функция в дальнейшем опирается.