Как мне остановить всплывающие / множественные события с помощью анимированных указателей мыши? - PullRequest
0 голосов
/ 31 мая 2010

Я заметил много ответов JQuery по этому вопросу, но я использую MooTools ...

У меня есть оглавление, которое использует фиксированное позиционирование CSS, чтобы оставить его слева, кроме 20 пикселей. Пользователь наводит курсор на 20 пикселей, что вызывает событие наведения мыши в DIV, и ToC полностью перемещается на страницу. Когда курсор уходит, ToC скользит обратно туда, где он был.

$('frameworkBreakdown').addEvents({
    'mouseover': function(event){
        event = new Event(event);
        $('frameworkBreakdown').tween('left', 20);
        event.stop;
    },
    'mouseout': function(event){
        event = new Event(event);
        $('frameworkBreakdown').tween('left', (10 - $('frameworkBreakdown').getStyle('width').toInt()) );
        event.stop;
    }
});

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

Как я могу остановить это поведение? Есть ли стандартный метод, или я использую какую-то неприятную глобальную переменную, которая определяет, действуют ли эффекты, и таким образом игнорирует событие?

1 Ответ

5 голосов
/ 31 мая 2010

Используйте mouseenter / mouseleave вместо mouseover / mouseout .

Кроме того, вы не должны делать это в MooTools 1.2 +:

event = new Event(event);
event.stop;

Достаточно простого event.stop().

...