Какие события мыши / касания я должен использовать, чтобы заставить div изменить цвет, когда курсор над ним перетаскивается? - PullRequest
1 голос
/ 25 июля 2011

Я хотел бы знать, какие события мыши мне нужно использовать для выполнения следующей задачи.

Когда курсор перетаскивается на элемент div, элемент div меняет цвет.

Под перетаскиванием я подразумеваю, что кнопка мыши была нажата один раз (и не отпущена) где-то за пределами div, а затем курсор был перемещен над div (кнопка мыши не была отпущенавремя во время этого процесса).

Div не должен отвечать на onmouseover.Кнопку мыши нужно было нажать и затем перетащить через div, чтобы активировать изменение в div.

Мне также интересно, есть ли какие-либо эквивалентные события для сенсорных устройств?

Ответы [ 2 ]

1 голос
/ 25 июля 2011

Если я правильно понимаю это право, вы можете сделать следующее:

  • установить глобальную переменную "mousedown" в false
  • использовать событие "onmousedown", чтобы установить "mousedown" вtrue
  • используйте событие onmouseover вашего div для запуска функции, в которой вы сначала проверяете, верно ли mousedown true, и если это так, делайте div видимым
  • , используйте событие "onmouseup" на вашей страницечтобы снова установить для "mousedown" значение false

Для всего JavaScript, связанного с событием касания, вы должны взглянуть на Sencha Touch

РЕДАКТИРОВАТЬ: Если вы хотите избежать таких рамок.Вы должны взглянуть на спецификацию HTML5.Пара новых событий, связанных с сенсорными устройствами.

Вот хорошая статья об этом:

http://www.html5rocks.com/en/mobile/touch.html

1 голос
/ 25 июля 2011

Я бы порекомендовал JQueryUI для этого - в него встроено несколько событий перетаскивания .Событие перетаскивания для сенсорных устройств называется touchmove

...