Задать вопрос
@JIakki

Как оптимизировать такой код?

var coords = $(window).width()/2
window.onmousemove = function(e){
   
   $("#layer-2").animate({"left" : ((coords - e.pageX) ) / 10}, 100 );
    
}
  • Вопрос задан
  • 2353 просмотра
Подписаться 2 Оценить Комментировать
Решения вопроса 1
@sainttechnik
Frontend developer, в прошлом админ
Найти и записать элемент для анимации вне обработчика событий.
Запускать анимацию по таймауту, который сбрасывается, если продолжается движение мышкой.
var windowCenter = $(window).width()/2,
    layer = $("#layer-2"),
    timeout;
$(window).on('mousemove', function(e){
    clearTimeout(timeout);

    timeout = setTimeout(function(){
        var newLeft = ((windowCenter - e.originalEvent.pageX) ) / 10;
        layer.animate({"left" :  newLeft}, 100 );
    }, 50); 
});

Демо: jsbin.com/cirule/1/edit?js,output
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы