| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > JavaScript: Общие вопросы > Блокировка mousemove при нажатой кнопке мыши |
| Автор: nikitos1980 26.2.2012, 13:03 |
| Добрый день В моем скрипте я перемещаю графический бегунок по горизонтали. Суть в том, чтобы когда было нажатие на самом бегунке (и кнопка не отпущена), то бегунок двигался за курсором. При событии mousedown на бегунке я добавляю контейнеру обработчик события mousemove. Начинаю двигать крусор мыши и бегунок следует за мышью, но почти сразу браузер останавливает обработку события (показывается значок черного увета в виде перечеркнутого круга) и затем, только когда отпустить кнопку мыши продолжается обработка перемещения курсора и бегунок следует за курсором. Я делал различные тесты и обнаружил, что при обработке события mousemove при нажатой кнопке мыши эта проблема возникает. Подскажите, кто столкнулся с такой проблемой и можно ли как-то обойти эту особенность браузеров? |
| Автор: $дмитрий 26.2.2012, 14:04 | ||
| Нужно запретить браузеру выделение. Готовый код для Jquery
|
| Автор: magelan 29.2.2012, 12:39 |
| onselectstart тут не при чем, его хорошо запрещать, чтобы не было визуальных артефактов. за описанное поведение отвечает событие ondragstart. |
| Автор: nikitos1980 29.2.2012, 13:37 |
| magelan, $дмитрий, спасибо! Решение от magelan оказалось самым что ни есть верным! Добавил код при начале пермещения (нажатие левой кнопки мыши): document.ondragstart = function() { return false; } А при окончании перемещения (отпускание мыши): document.ondragstart = function(){} Работает отлично! |