jQuery 在开始新动画之前退出动画

标签 jquery animation

我有:

$('.p_m').mouseenter(function () {

    $(this).animate({
        marginTop: '10px',
        marginLeft: '10px',
        height: '150px',
        width: '150px'
    }, 10000);

}).mouseleave(function () {

    $(this).animate({
        marginTop: '35px',
        marginLeft: '35px',
        height: '100px',
        width: '100px'
    }, 10000);
});

当我离开类 '.p_m' 的速度快于 10000 毫秒时,即使我离开 div 类,mouseenter 动画也会继续运行。

如何跳过动画(鼠标输入)或更好地使其快速以适合 10000 毫秒。

最佳答案

使用.stop()停止当前动画。

$('.p_m').mouseenter(function () {

    $(this).stop().animate({
        marginTop: '10px',
        marginLeft: '10px',
        height: '150px',
        width: '150px'
    }, 10000);

}).mouseleave(function () {

    $(this).stop().animate({
        marginTop: '35px',
        marginLeft: '35px',
        height: '100px',
        width: '100px'
    }, 10000);
});

如果您希望动画在开始新动画之前跳到末尾,请传递 true 作为第二个参数。 .stop(true,true)

关于jQuery 在开始新动画之前退出动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8862817/

相关文章:

javascript - 我可以为 CSS 背景图像设置不透明度动画吗?

java - 在动画期间更改按钮功能

python - 我无法使用 matplotlib.animation 看到动画

ios - UIView水平动画不水平

iOS - 使用动画展开/折叠 UITableView 部分

JavaScript 形式。使 1 个条目依赖于另一个条目

javascript - 添加新项目的功能

javascript - 尝试更新 DOM 中的 HTML 表值时出现错误

javascript - 使用ajax更新页面数据

javascript - 循环动画功能