Как сделать плавное изменение числа в js коде?

Есть такой код на js
bgWebKit = "-webkit-gradient(radial, " + xy + ", 0, " + xy + ", 100, from(rgba(255,255,255,0.8)), to(rgba(255,255,255,0.0))), " + originalBG;
где xy - это координаты положения курсора. В зависимости от положения меняется центр радиального градиента. Как сделать так, чтобы значения координат изменялись плавно, чтобы центр перемещался не сразу за курсором, а с плавно и с некоторой задержкой?
  • Вопрос задан
  • 1067 просмотров
Пригласить эксперта
Ответы на вопрос 2
Petroveg
@Petroveg
Миром правят маленькие с#@&ки
element {
	transition: background .5s .5s;
}
Ответ написан
Ronnie_Gardocki
@Ronnie_Gardocki
Я у мамы фронтендщик.
Если такое не умеет GSAP (а по ходу он не умеет), то по идее это должно решаться с помощью requestAnimationFrame. То есть пишите функцию анимации, которая стартует raf, меняя значение с использованием изинга. В теории все звучит легко, но на деле при привязке к mousemove начинается адовая херня. Надо юзать что-то типа throttle, но у меня уже голова болит таким в воскресенье вечером заниматься.
codepen.io/suez/pen/ab687e94e1a7de55b483c454988e8c73 - вот оооооочень кривая демка с говнокодом, которая анимирует позицию радиального градиента по клику. Если в самом низу в $(document).on("click" этот клик поменять на mousemove, то увидите как все будет дергаться (о чем я собственно и писал выше, упоминая необходимый throttle). В этой демке уже предусмотрена система остановки анимации и старта новой. То есть если во время анимации кликнуть по блоку снова, то анимация корректно переедет в новое место. Но с mousemove без throttle по виду забивается весь тред при быстром движении мышью и получается веселуха.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы