Jump to content
  • 0

Кинетическая прокрутка


vvsh
 Share

Question

Здрасте, я хочу сделать прокрутку с инерцией, то есть я нажимаю на элемент в списке и как бы толкаю его вверх, и список прокручиватся, то есть как в телефонах, вот видео

(листание контактов)

это возможно на javascript?

заранее спасибо

Link to comment
Share on other sites

20 answers to this question

Recommended Posts

  • 0

Я ничего не говорю про ваши знания.

Ок, распишу как я это представляю, если вам так хочется:

1) реализуем drag&drop;

2) при перетягивании проверяем доехал ли наш слой до середины контейнера и если да, то на mouseup запускаем анимацию easeOut (с замедлением), которая доводит слой до края контейнера;

3) если слой не доехал до середины то таким же макаром возвращаем его назад;

у меня нет айпода, но помоему там рабочий стол работает именно так

Link to comment
Share on other sites

  • 0

Драг и дроп тут в чистом виде не нужен.

Для решения задачи нам потребуется

1. Узнать, есть или нет нажатия мыши где-то на контейнере.

2. Потом мониторить mousemove, и смотреть

а) в какую сторону движется мыша. Это программа-минимум

б) мониторить расстояние, на которое сдвинулась мыша

в) с какой скоростью движется мыша. Это программа-максимум

3. Получив направление движения и расстояние, на которое сдвинулась мыша, можно рассчитать некий импульс, который будет выражен в виде длинны смещения, на которое нужно проскроллить наш контент.

4. Запустить процесс скроллинга на нужное расстояние, используя формулы затухания, которые были приведены в ветке выше.

Все.

Link to comment
Share on other sites

  • 0
Для решения задачи нам потребуется

1. Узнать, есть или нет нажатия мыши где-то на контейнере.

2. Потом мониторить mousemove, и смотреть

а) в какую сторону движется мыша. Это программа-минимум

б) мониторить расстояние, на которое сдвинулась мыша

в) с какой скоростью движется мыша. Это программа-максимум

3. Получив направление движения и расстояние, на которое сдвинулась мыша, можно рассчитать некий импульс, который будет выражен в виде длинны смещения, на которое нужно проскроллить наш контент.

4. Запустить процесс скроллинга на нужное расстояние, используя формулы затухания, которые были приведены в ветке выше.

Все.

Спасибо что откликнулся.

Что я сделал, 1, 2, а, б, это готово

с какой скоростью, это расстояние, то бишь координата X на время, это попробую сделать.

с 3 и 4 проблема, так как мне надо запускать скролл как только я начал движение мышью, а не тогда когда прекратил уже, что с этим делать?

и можно убрать выделение контента в этом диве?

http://vvsh.ru/scroll/index.html - вот что есть

Link to comment
Share on other sites

  • 0
с 3 и 4 проблема, так как мне надо запускать скролл как только я начал движение мышью, а не тогда когда прекратил уже, что с этим делать?

У тебя должно быть два независимых процесса

1. Рассчет новой координаты, куда должен двигаться контент.

2. Анимация, которая по определенному алгоритму будет двигать этой фрейм.

и можно убрать выделение контента в этом диве?

Для ИЕ есть атрибут onselectstart="return false;"

От него отталкивайся и ищи в инете решения для остальных

Link to comment
Share on other sites

  • 0
У тебя должно быть два независимых процесса

1. Рассчет новой координаты, куда должен двигаться контент.

2. Анимация, которая по определенному алгоритму будет двигать этой фрейм.

да, спасибо, попробую сделать.

а как сделать сам этот блок в котором крутить можно будет, как его сверстать?

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy