Прямо сейчас у меня есть простая кнопка, настроенная, которая анимируется при нажатии мыши и отменяет эффекты этой анимации при отпускании мыши. Анимация изменяет свойства "top", "left" и "box-shadow". Мне пришлось использовать специальный плагин jquery, чтобы функция jquery.animate() влияла на тэг box-элемента. Для удобства ссылок здесь находится репозиторий GitHub моего текущего примера.
Проблема в том, что даже если кнопка мыши будет немедленно выпущена, анимация завершается до того, как она продолжит отменять себя. Желаемый эффект заключается в том, чтобы пользователь мог контролировать, перемещается ли кнопка "вверх" или "вниз", удерживая или отпуская кнопку мыши. Посмотрите этот пример (последнее поле справа), чтобы получить представление о том, чего я хотел бы достичь.
В моих исследованиях пока кажется, что для этого нужно использовать привязку/развязывание, но примеры, которые я видел, не касались остановки анимации до ее завершения.
Когда вы используете jQuery для анимации,
Вы можете использовать.stop() для
Остановите текущую анимацию на согласованных элементах.
ИЛИ
Вы также можете использовать.finish() для
Остановите текущую анимацию, удалите все очереди в очереди и завершите все анимации для согласованных элементов.
Затем вы можете вернуться к исходным значениям элементов при остановке анимации.
.stop()
непосредственно перед каждым .animate()
в двух обработчиках событий. Сначала это вызывало проблемы, потому что top
и left
свойства позиционирования были анимированы с использованием +=5px
& -=5px
вызывая перемещение кнопки при быстром нажатии мыши. Это было изменено для применения статических значений свойств top
и left
и это работает довольно хорошо!