Mousemove против Mouseover против чего-то еще - PullRequest
4 голосов
/ 25 ноября 2011

Мне нужно привязать событие мыши к области изображения.

Просто подумайте о теге изображения Facebook на секунду, когда вы наводите курсор на лицо, оно показывает вам имя.

Я сделал очень похожую вещь, но с картами и названиями городов, например:

$('img#mapaMundi').bind('mousemove', function(e) {
    x = getX();
    y = getY();
    var found = find(x, y);

    if (found == undefined) {
        console.log('There is no tagged city for this position');
    } else {
        show(found);
    }
});

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

Если я использую .bind('mouseover'), она не будет работать, потому что при наведении курсора на изображение всегдав одном из краев.

Что бы вы предложили?

Ответы [ 2 ]

3 голосов
/ 25 ноября 2011

при наведении мыши на setInterval с функцией, которая будет проверять положение мыши каждую секунду, а при наведении мыши очищать этот интервал

Если вы используете jQuery, .hover () обеспечивает как наведение мыши, так и наведение мыши

2 голосов
/ 25 ноября 2011

Вы можете комбинировать, например, наведение курсора мыши или ввод мыши и перемещение мыши

http://api.jquery.com/mousemove/

http://api.jquery.com/mouseenter/

Поэтому при вводе мыши -> перемещение мыши

отпуск мыши -> ничего не делать?

var int = null;
$('#element').hover(function() {
int = setInterval(someFunc, 100);
}, function() {
clearInterval(int);
});

function someFunc() {
DO YOUR MOUSEMOVE THINGS
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...