Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.07.2015, 01:07   #1
WennY
Форумчанин
 
Регистрация: 17.01.2008
Сообщений: 236
Лампочка Скролл на определенную дистанцию (jquery)

Доброго времени суток. Есть вот такой галерейный контейнер. Хочу рывкообразный, бесцельный скролл заменить на плавную, вертикальную прокрутку рядов фотографий колесом мыши и ползунком. Выглядит это так: при прокрутке вниз подскролливаем к нижеследующему ряду (к топу нижестоящих иконок); вверх - к вышестоящему.

Несколько часов мытарств и гугления не дали ничего. scrollTop работает неадекватно, какие значения я ему не давал. В гугле всем поголовно кроме скролла к топам и боттомам, судя по всему, ничего больше в жизни не надо. Плагинов найти не смог.

Вопрос: без развратных действий со scrollTo возможен ли плавный скролл от текущей точки на заданное расстояние (допустим, на 80 пикселей)? Может, плагины какие, или я все-таки про scrollTop что-то не догуглил.

Спасибо.

Последний раз редактировалось WennY; 24.07.2015 в 01:10.
WennY вне форума Ответить с цитированием
Старый 24.07.2015, 01:36   #2
Naive
Раздолбайских Дел
Старожил
 
Аватар для Naive
 
Регистрация: 22.05.2009
Сообщений: 3,828
По умолчанию

http://jsfiddle.net/4upmt9gt/3/
Alar, верни репу!
Naive вне форума Ответить с цитированием
Старый 24.07.2015, 02:10   #3
WennY
Форумчанин
 
Регистрация: 17.01.2008
Сообщений: 236
По умолчанию

Спасибо огромное, завелось. А вы не могли бы объяснить суть моей ошибки? Что я не доучел? Что такое 160?
WennY вне форума Ответить с цитированием
Старый 24.07.2015, 09:49   #4
Naive
Раздолбайских Дел
Старожил
 
Аватар для Naive
 
Регистрация: 22.05.2009
Сообщений: 3,828
По умолчанию

Цитата:
Сообщение от WennY Посмотреть сообщение
А вы не могли бы объяснить суть моей ошибки?
На первый взгляд, это отсутствие кода
Цитата:
Сообщение от WennY Посмотреть сообщение
Что я не доучел?
чтобы что-то заработало, надо что-то написать
Цитата:
Сообщение от WennY Посмотреть сообщение
Что такое 160?
значение, при котором запускать демку сначала. Такое-же мейджик-намбер, как и все остальное.
Alar, верни репу!
Naive вне форума Ответить с цитированием
Старый 24.07.2015, 12:27   #5
WennY
Форумчанин
 
Регистрация: 17.01.2008
Сообщений: 236
По умолчанию

Цитата:
Сообщение от Naive Посмотреть сообщение
На первый взгляд, это отсутствие кода

чтобы что-то заработало, надо что-то написать
Т.е. если бы я выложил сюда один из дюжины вариантов, которые у меня не завелись, то внезапно бы все стало хорошо? Я верно понял вашу мысль? Кому-то станет легче, если я перетащу сюда весь дамп истории phpstorma'а, явственно повествующий о более чем полутора часов бесплодных усилий подобрать хоть какое-нибудь значение?

Цитата:
Сообщение от Naive Посмотреть сообщение
значение, при котором запускать демку сначала. Такое-же мейджик-намбер, как и все остальное.
Я готов стерпеть весь бурный поток вашей иронии, если вы мне обещаете объяснить, как можно высчитывать цифры 120 (?) и 160. Пока я просто не понимаю логики.
WennY вне форума Ответить с цитированием
Старый 24.07.2015, 13:40   #6
Naive
Раздолбайских Дел
Старожил
 
Аватар для Naive
 
Регистрация: 22.05.2009
Сообщений: 3,828
По умолчанию

Цитата:
Сообщение от WennY Посмотреть сообщение
Т.е. если бы я выложил сюда один из дюжины вариантов, которые у меня не завелись, то внезапно бы все стало хорошо?
Появилась бы призрачная надежда ответить на вопрос
Цитата:
Сообщение от WennY Посмотреть сообщение
А вы не могли бы объяснить суть моей ошибки?
Цитата:
Сообщение от WennY Посмотреть сообщение
Я верно понял вашу мысль?
Не думаю
Цитата:
Сообщение от WennY Посмотреть сообщение
Кому-то станет легче, если я перетащу сюда весь дамп истории phpstorma'а, явственно повествующий о более чем полутора часов бесплодных усилий подобрать хоть какое-нибудь значение?
Сомневаюсь, но из фразы могу предположить суть ошибки: задача программиста найти алгоритм, а не какие-то частные значения (magic numbers).
Цитата:
Сообщение от WennY Посмотреть сообщение
Я готов стерпеть весь бурный поток вашей иронии
Немногие готовы пойти на этот шаг, ответственно заявляю, что я восхищен твоим мужеством!
Цитата:
Сообщение от WennY Посмотреть сообщение
если вы мне обещаете объяснить, как можно высчитывать цифры 120 (?) и 160. Пока я просто не понимаю логики.
120? — не приложу ума, откуда ты это взял.
160 — число, кратное 80
80 — шаг скролла, о котором ты сам же спросил в топике
Цитата:
(допустим, на 80 пикселей)
160/80 = 2 — ровно столько итераций догоняет скролл до последней строки.
300 — время анимации
2000 — кулдаун между итерациями
-80 — отрицательный степ скролла, чтобы при последней итерации таргет скролла обнулился
Alar, верни репу!
Naive вне форума Ответить с цитированием
Старый 24.07.2015, 15:11   #7
WennY
Форумчанин
 
Регистрация: 17.01.2008
Сообщений: 236
По умолчанию

Цитата:
Сообщение от Naive Посмотреть сообщение
Немногие готовы пойти на этот шаг, ответственно заявляю, что я восхищен твоим мужеством!
У меня просто нет сил сегодня ни на кого злиться (больше суток на ногах). Так что просьба особо не обольщаться

Цитата:
Сообщение от Naive Посмотреть сообщение
Появилась бы призрачная надежда ответить на вопрос
Просто так сложились звезды. В ходе своих бесплодных попыток я несколько раз добавлял к scrollTop(), но как раз в этот момент оборачивал его в кривой евентхандлер, из-за чего рабочий вариант просто проскользнул мимо. Потому, увидев ваш код (почти тот же, что и мой "нерабочий"), я долго не верил своим глазам, пока не начал просто без евентов его вызывать на странице.

В любом случае спасибо. Теперь буду по аналогии шаманить с горизонтальной прокруткой ползунком, - далеко не все юзеры вообще подозревают о наличии у своей мыши колеса. Будут елозанием по конту только сбивать с толку wheel-хандлер. Да и выпадают для них, получается, все мои старания и бессонные ночи.

Последний раз редактировалось WennY; 24.07.2015 в 15:18.
WennY вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как вычислить дистанцию? romka1608 Общие вопросы Delphi 4 30.08.2013 15:15
Скролл Аллен HTML и CSS 1 05.12.2012 01:46
скролл бар Abuhamed HTML и CSS 3 16.03.2010 14:27
Скролл в Word viter.alex Microsoft Office Word 3 27.01.2009 23:41
цель игры - управляя корабликом стрелками, пройти дистанцию за наименьшее время. Lazzy Gamedev - cоздание игр: Unity, OpenGL, DirectX 7 18.12.2007 23:51