скролл при drag событии. Как можно реализовать инерциальный скролл? Чтобы при резком drag событии и при dragEnd скролл не останавливался, а продолжался некоторое время. Как на телефоне. В голову что-то ничего не приходит
в css для хрома есть такое , в jquery есть для всех
У меня канвас. У меня нет css. jQuery, думаю, тоже не вариант
есть точки косания вычитай из pY -Y. и чем оно больше - тем больше крути
Обычный скролл так и реализован в проекте. Но нужно добавить ему инерцию как в том же телефоне. Разница между 'y' двух точек скажет лишь на какое количество пикселей прокрутить. Но инерциальность на основе этой инфы не добавишь
добавишь (py-y)+dy; dy-=05; ну типа того
лучше конечно посмотреть как это в jquery сделано (исходник) . или самому расчитать этот {dy}
А как метод называется?
непомню , "плавный скролл на jquery" введи . Но оно и самому понятно
типа так : если (py-y) меньше например 10ти , то скроль по обычному, если больше 10ти то:
deprecated
имелось ввиду, что загуглить, а не название либы) ибо deprecated она или нет - я хз
то: добавляй к разности dy и т.д.
А если медленно проскроллить большое количество пикселей, то что, при событии окончания скролла скорость будет максимальной?
нет это стандартные переменные pMouseY и просто mouseY
mouseMove(event){ event.pMouseY//предыдущее положение мыши event.mouseY//текущее.. } это не точные имена , загугли точные в ивентах
там они основаны на скорости "опроса мыши" лучше конечно сделать так: при касании засекаешь время и координату {y} А при отпускании клавиши сохраняешь время отпускания и координату {y} speed=(yEnd-yStart)/(timeEnd-timeStart);
Нашел. Movement называется. Хм, не знал даже что такая штука есть. Думал придется уже сохранять значение предыдущего евента и сравнивать с текущим
Ну тут юзер может ведь водить по экрану туда-обратно. А потом вообще остановиться и отпустить палец. Время будет большое, а самого проскроленного значения может и не быть
сначало пойми и реализуй алгоритм (он очень простой) , потом уже защиту делай и прочее.. З.Ы. пусть скролит долго , speed=1px/10000ms= очень маленькая скорость
пока маленькая скорость , юзаеться обычный скрол , как только скорость превысит порог , запускай свой инертный скролл
Обсуждают сегодня