gpt4 book ai didi

javascript - jquery .animate() 鼠标悬停/鼠标悬停

转载 作者:行者123 更新时间:2023-11-29 15:32:38 25 4
gpt4 key购买 nike

我有一个 div,它被动画化以在指定区域中流畅地改变位置。这很好用。现在我希望动画在鼠标悬停时暂停并在鼠标移出时恢复,并在鼠标悬停时放大 div 并在鼠标移出时调整为以前的小尺寸。

我的代码如下所示:

function animateBubble(canvas, bubble){

newB = newSize();
newQ = newPosition(canvas, bubble);
oldQ = $(bubble).offset();
speed = calcSpeed([oldQ.top, oldQ.left], newQ);

$(bubble).animate({ // initial animation start of bubble
top: newQ[0],
left: newQ[1],
width: newB[0],
height: newB[1]
},
{ duration: speed, // set the duration
step: function( now, fx ) { // get the coordinates of the bubble dynamically
var offset = $(this).offset();
xPos = offset.left; // now position
yPos = offset.top;
nowWidth = $(this).width();
nowHeight = $(this).height();
},
complete: function(){ // do the whole animation again upon completion
animateBubble(canvas, bubble);
}
}).mouseover(function(){ // pause animation on mouseover
$(bubble).stop();
$(bubble).height(230);
$(bubble).width(230);
}).mouseleave(function(){ // restart animation on mouseout
//alert('hello');
$(this).height(nowHeight);
$(this).width(nowWidth);
$(this).start();
animateBubble(canvas, bubble); // doesn't want to start again
});
}

似乎在 mouseout 上我可以在不调整 div 大小的情况下恢复动画,或者在不恢复动画的情况下调整 div 大小。

有人可以帮我解决这个问题吗?

这是一个有效的 js fiddle

http://jsfiddle.net/29cwcx04/

谢谢

最佳答案

我认为,问题在于您在完成将圆的大小重新调整回正常大小之前剪切了宽度和高度动画。这是一个快速修复:

...mouseleave(function(){ // restart animation on mouseout
//alert('hello');
$(this).height(nowHeight);
$(this).width(nowWidth);
setTimeout(function(){animateBubble(canvas, bubble);},1000);
});

关于javascript - jquery .animate() 鼠标悬停/鼠标悬停,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33172273/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com