Javascript mouseover при перетаскивании
Я пытаюсь реализовать drag and drop script и ударил стену одной проблемой. Когда вы берете предмет и начинаете перетаскивать его - элемент находится прямо под вашим курсором, а событие onmouseover очень редко срабатывает на элементах ниже. Но я хочу, чтобы другие предметы выделялись, когда я перетаскиваю что-то поверх них. Одно из решений заключалось бы вовсе не в том, чтобы тащить что-либо - таким образом, события мыши будут работать, но это выглядело бы уродливо. Кто-нибудь когда-либо делал что-то подобное и знал, как преодолеть эту проблему?
Если вы думаете о том, чтобы предлагать какой-либо плагин JQuery или что-то в этом роде, не делайте этого. Мне не нужно готовое решение, это образовательное.
Ответы
Ответ 1
IMO, чтобы часто запускать событие mouseover
, было бы привязкой к событию mouseover
к элементу parent
всех затронутых элементов или, возможно, самому document
, поскольку события они, возможно, являются единственными элементами, которые могут запускать события mouseover
.
Затем далее напишите метод hit
в своем mouseover
событии и активно проверьте положение курсора мыши, посмотрите, идет ли он под границей целевого элемента. Компромисс в удобстве использования и производительности. Вы выбираете.
Мои 2центы.
Или, может быть, вы можете перепроектировать jQuery UI
, чтобы увидеть, как они реализуют элемент перетаскивания. Не проверь, но я думаю, что должен быть более мудрый способ.