В следующем коде на .hover()
высота элемента #wrap
в анимированном виде через jQuery animate()
.Триггерная анимация CSS только если кнопка не была нажата
На handlerIn
элемент получает 250px высоты и на handlerOut
он теряет 250px высоты.
Проблема в том, что я также включил кнопку, которая дает пользователю возможность удалить 250 пикселей высоты, которая добавляется на .hover(handlerIn)
. Когда пользователь нажимает эту «кнопку», затем перемещает мышь за пределы элемента hover
(handlerOut
); элемент hover
теряет 250px дважды.
Я бы хотел только активировать функцию .hover(handlerOut)
, если у пользователя есть нет нажмите кнопку «.
$(document).ready(function() {
$("#wrap").hover(
function() {
$(this).animate({height: '+=250'}, 'slow');
$('#button').css('display', 'block');
expanded = true;
console.log("expanded is " + expanded);
},
function() {
$(this).animate({height: '-=250px'}, 'slow');
$("#button").hide();
expanded = false;
console.log("expanded is " + expanded);
}
);
$('#wrap').on('click', function(){
window.open('http://google.com', 'click', 'window settings');
return false;
console.log('click');
});
if(expanded = true){
$("#button").on('click', function(){
$('#wrap').animate({height: '-=250px'}, 'slow');
$("#button").hide();
return false;
});
};
});
просто просто имеет глобальную переменную, чтобы увидеть, щелкнули ли x, и в mouseout есть оператор if перед выполнением анимации? – sinanspd
Возможный дубликат [Как остановить очередь анимации в jQuery?] (Http://stackoverflow.com/questions/18211280/how-to-stop-an-animation-queue-in-jquery) и множество других найденных путем поиска SO. – Rob
Я бы тоже сказал: $ ('# wrap'). Stop(). Animate ... – reyaner