Div клик + скорость перетаскивания слишком высока? - PullRequest
1 голос
/ 28 июня 2011

Я создал (http://jsfiddle.net/XMhMR/1/) простой div, который можно щелкнуть и перетащить. Однако, когда вы щелкаете и перетаскиваете, div перемещается с скоростью молнии .

Iхочу больше кликов и перетаскивания в стиле Google Maps, где это не так быстро. Я пытался разделить дельты в 10 раз, но это странным образом ускоряется и замедляется. Кто-нибудь знает, что происходит?

Ответы [ 2 ]

2 голосов
/ 28 июня 2011

Вы должны обрабатывать свои переменные прокрутки так же, как вы обрабатываете «текущую позицию». Храните их в объекте, а не хватайте их каждый раз. Вы в основном добавляете каждое движение в каждый раз, когда оно движется. Если вы двигаетесь на 2 пикселя, затем еще на 2, при первом перемещении на 2, а затем во второй раз на 2 + 2. Но вы уже двинулись на 2, так что теперь вы двигаетесь на 6 вместо 4 ... в конце концов, эти сборки будут очень быстрыми.

http://jsfiddle.net/XMhMR/3/

0 голосов
/ 28 июня 2011

Неважно, я обнаружил, что я был дураком. Фиксированная версия здесь: http://jsfiddle.net/XMhMR/2/.

В итоге: не пересчитывайте позиции scrollLeft и scrollTop для каждого события перемещения мыши, потому что это в действительности удваивает дельту, вызывая ускорение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...