Я разрабатываю решение параллакса для своего сайта, который получает позицию мыши каждый раз, когда пользователь перемещает курсор. Проблема, с которой я столкнулся, заключалась в том, что когда я нажимаю на документ в любом месте, браузер становится ломаным и нервным. Я могу записывать положение курсора без каких-либо задержек, однако отображение движения на самом документе изменчиво.Chrome Browser становится laggy после события onClick
Это, как я получаю позицию мыши
this.onMove=function(posX, posY){
bigX = $('#Stage').width();
bigY = $('#Stage').height();
console.log(posX+" - "+posY); //this is working properly in real-time
posX = bigX/2 - (posX);
posY = bigY/2 - (posY);
for(i = 1; i<4; i++){ //the part that seems to be lagging
$('.layer'+(i-1)+'').css({"-webkit-transform":"translate("+posX/50*i+"px,"+posY/50*i+"px)"});
}
}
$(document).mousemove(function(e){
this.onMove(e.pageX, e.pageY);
});
Я также попытался осуществления переводов без цикл, но результат тот же. Это проблема с увязкой браузера или есть какое-то событие onclick, которое может застрять в цикле?
Видя, что функция и цикл for выполняются тысячи раз каждый раз, когда вы делаете небольшое движение с помощью мыши, ответ, скорее всего, «да», браузер увяз. – adeneo
Должен ли я ограничивать количество опросов в секунду, возможно, уменьшая часть нагрузки? –