我创建了一个从视口外部滑入的div,并将其自身放在原始div上。
通过将鼠标悬停在box1
上来触发动画。这将使box2
代替box1
。
当鼠标离开box2
div时,它将再次放在视口之外。
但是,此div内的光标移动缓慢会导致动画快速触发。
$(document).ready(function() {
$('.box1').mouseover(function() {
$('.box2').stop().animate({
top: 0
}, 100);
}).mouseout(function() {
$('.box2').stop().animate({
top: '-200px'
}, 100);
});
});
以下小提琴应该提出问题。
答案 0 :(得分:0)
这样做,两个元素的绑定事件,它将解决问题
$(document).ready(function () {
$('.box1,.box2').mouseenter(function () {
$('.box2').stop().animate({
top: 0
}, 'slow');
}).mouseleave(function () {
$('.box2').stop().animate({
top: '-200px'
}, 'slow');
});
});
答案 1 :(得分:0)
你可以这样做:
var done = true;
$(document).ready(function() {
$('.box1').mouseenter(function() {
if (done){
done = false;
$('.box2').stop().animate({
top: 0
}, {duration: 400,
complete:
function(){
done = true
}
});
}
});
$('.box2').mouseleave(function() {
if (done){
done = false;
$('.box2').stop().animate({
top: -400
}, {duration: 400,
complete:
function(){
done = true
}
});
}
});
});
因此,请检查动画是否仍然存在,并且仅在未启动下一个动画时