Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 02.05.2020, 14:03
Интересующийся
Отправить личное сообщение для Perepelenok Посмотреть профиль Найти все сообщения от Perepelenok
 
Регистрация: 16.07.2016
Сообщений: 26

Хаотичное движение элементов
https://codepen.io/kotya_ra/pen/VwvMNVm

Здравствуйте! Написал код, двигающий хаотично каждые 2 секунды элементы, подтормаживает у знакомого, сам тестировал на маке, а на винде вроде тормозит, есть ли возможность оптимизировать?Спасибо.

Последний раз редактировалось Perepelenok, 02.05.2020 в 14:07.
Ответить с цитированием
  #2 (permalink)  
Старый 02.05.2020, 14:33
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,723

Я думаю подтормаживает у вашего знакомого из-за того, что у вас длительность анимации не зависит от дистанции, т.е. объект что 100 пикселей будет идти 1 секунду, что 10.

https://jsfiddle.net/NexusDeveloper/xy0nkue1/
Ответить с цитированием
  #3 (permalink)  
Старый 02.05.2020, 16:54
Аватар для Malleys
Профессор
Отправить личное сообщение для Malleys Посмотреть профиль Найти все сообщения от Malleys
 
Регистрация: 20.12.2009
Сообщений: 1,714

Perepelenok, оно скорей там не подтормаживает, а когда движется медленно, то перескакивает по пикселям. Не стоит анимировать свойство margin, если вам нужна точная анимация. Для гладкой и субпиксельной анимации используйте transform. Также не стоит использовать старую библиотеку jQuery, в которой на самом деле не поддерживается анимация. (Они там на ЦП просчитывают промежуточные кадры)

Для вашей задачи нужна аппаратно-ускоренная CSS-анимация. CSS-анимация на то и анимация, чтобы её использовать для анимации. Вот ваш пример, я заменил «хак» с margin на анимацию. https://codepen.io/Malleys/pen/YzyrmwX?editors=0010

Сообщение от Nexus
Я думаю подтормаживает у вашего знакомого из-за того, что у вас длительность анимации не зависит от дистанции, т.е. объект что 100 пикселей будет идти 1 секунду, что 10.
А разве такой анимации не может быть? Конечно может! Просто надо анимировать субпиксельно... А то что вы сделали, оно тоже самое, только быстрей проскакивает по пикселям!

Последний раз редактировалось Malleys, 02.05.2020 в 16:56.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Переписать скрипт на JavaScript (движение мышкой) alerzo Работа 1 29.07.2018 11:26
Сложное движение элементов daw2nalim_alex Общие вопросы Javascript 10 17.12.2014 01:55
Вывод случайных элементов из массива в таблицу Narm0 Общие вопросы Javascript 10 06.08.2013 12:39
Удалить и вернуть массив из удаленных элементов splice Paulyyy Общие вопросы Javascript 15 29.05.2013 15:36
Получить список ВСЕХ элементов DOM Почемучкин Events/DOM/Window 7 16.04.2012 11:33