2015-01-07 1 views
0

В настоящее время я столкнулся с проблемой с Javascript и событие мыши OnMouseOver:событий JavaScript мыши перехват

  • я уже получил первый элемент (SVG прямоугольник), который называют функцию, когда курсор мыши находится над
  • У меня есть второй элемент (png-изображение) над этим прямоугольником (но меньше прямоугольника)

И проблема в том, что когда мышь над изображением, прямая не вызывает функцию.
Как будто изображение перехватывает событие, чтобы ничего не делать с ним.

Я знаю, что я мог бы добавить событие к изображению, чтобы решить проблему, но есть ли способ сделать изображение «прозрачным» для события мыши и передать событие mouseover в нижний элемент?

Спасибо, и я прошу прощения за мой английский

+0

Добро пожаловать в SO. Язык в сторону, это может помочь прояснить, добавили ли вы код на свой вопрос, чтобы продемонстрировать – geedubb

ответ

0

Там нет стандартного решения этой проблемы. Вы можете использовать события jQuery mouseenter/mouseleave для решения этого вопроса, или вам нужно закодировать функцию для определения размеров и координат поля и проверить положение мыши самостоятельно.

Посмотрите здесь для примера: JavaScript mouseover/mouseout issue with child element

+0

. Что относительно флага захвата, третьего параметра в addEventListener? –

+0

Флаг захвата не решает проблему. Кроме того, addEventListener не работает для IE <9, поэтому для IE8 или ниже вы должны использовать attachEvent() в зависимости от требований совместимости. Щелкните здесь, чтобы получить дополнительную информацию о addEventListener: https://developer.mozilla.org/en-US/docs/Web/API/EventTarget.addEventListener – Tyr

0

Вы можете попробовать CSS свойства указатель события:

img.overlay { 
    pointer-events: none; 
} 

«The CSS собственность указатель события позволяет авторам контролировать при каких обстоятельствах (если таковые имеются), то конкретный графический элемент может стать объектом событий мыши. Когда это свойство не указано, те же характеристики значения visiblePainted применяются к содержимому SVG.

В дополнение к указанию на то, что элемент не является объектом событий мыши, значение none указывает, что событие мыши переходит «через» элемент, а цель - «под ним». (Source: MDN)

+0

Пробовал, но по-прежнему та же проблема: когда мышь просматривает изображение, запускает событие mouseout –

0

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