2013-01-29 2 views
6

Это не тот же вопрос, что и все остальные.Я уже запрещаю Chrome входить в режим выбора текста при перетаскивании. (Редактирование: я хочу только заблокировать значок/внешний вид, а не ограничивать местоположение или перемещение, и только между mousedown и mouseup). Проблема, которую я хотел бы избежать, заключается в том, что Chrome меняет курсор при перетаскивании на все, что находится под курсором (ie-i-beam, в то время как контроль над текстовым вводом, рука во время гиперссылки и т. д.).Блокировка курсора мыши при перетаскивании в Chrome

IE и FireFox/Moz поддерживают элемент.setCapture(), который я вызываю в событии mousedown, который «блокирует» эти браузеры для элемента, так что курсор мыши остается на все, что курсор этого элемента ... очень приятно , Chrome не поддерживает эту функцию или что-то в этом роде, о котором я знаю.

Наблюдая MouseMove и MouseUp события на документе объекта вместо элемента, который кликнули, я могу еще получить наиболее поведения SetCapture(), в том, что я могу отслеживать события мыши, которые происходят за пределами элемент и даже вне окна браузера. Тем не менее, я остался с одной проблемой, а курсор мыши изменился в Chrome.

+0

Если вы нажимаете кнопку мыши, а затем перетаскиваете мышь вокруг страницы в разных браузерах, вы увидите корень проблемы. В IE и FF значок мыши остается на все, что было задано для кнопки (потому что кнопка «захватывает» мышь, а кнопка вниз). В Chrome мышь меняется при перетаскивании. Возможно, пользователям Chrome это нравится, скорее всего, они никогда не замечали или не заботились, но для моего конкретного использования (перетаскивание для изменения размера столбца в таблице) это отвлекает и кажется «ошибкой» для моих пользователей. – eselk

ответ

0

Обычно я размещаю элемент над всем остальным с помощью курсора на мыши и удаляю его по мыши. Далеко от самого чистого подхода, но он работает для меня.

3

Я считаю, что вы ищете Pointer Control Lock API, недавно введенный способ для пользователей управлять устройством ввода пользователя (если разрешено). Большой вариант использования - игры.

Без защищенного и поддерживаемого API, позволяющего сайтам брать на себя элементы управления вводами пользователей, будет довольно катастрофическим (например, щелчками мыши и принудительной загрузкой вредоносных программ), поэтому, если вы хотите «заблокировать» курсор, то это, вероятно, будет ваш единственный вариант.

+1

Я обновлю свой вопрос, надеюсь, ясно, что я хочу заблокировать внешний вид курсора (только значок), а не ограничивать диапазон перемещения или местоположение. Точно, что setCapture() делает в других браузерах и проработал в течение 10 лет, насколько мне известно, без каких-либо проблем с безопасностью. – eselk

Смежные вопросы