小 Jquery 动画功能问题

Posted

技术标签:

【中文标题】小 Jquery 动画功能问题【英文标题】:Small Jquery animate function issue 【发布时间】:2011-07-28 00:51:06 【问题描述】:

我正在使用这个 Jquery 动画函数:

$(document).ready(function() 
    $("#trigger").hover(function() 
        $("#mask").animate(            
    width: 'toggle', left: '+=0', 250, 'easeout');
    );
);

当用户将鼠标悬停在触发范围区域 (<span id="trigger">) 上时,掩码 (<div id="mask">) 会向左滑动。然后,当用户将鼠标移离触发区域时,遮罩会返回原位。

完美运行。

但是,如果在页面加载时用户的鼠标悬停在触发跨度区域上,则遮罩会反向滑动,也就是说,当用户将鼠标悬停在触发跨度上时,它会滑动到位。当她/他离开触发区域时,遮罩会向左滑动。

有人知道防止这种情况发生的方法吗?

【问题讨论】:

【参考方案1】:

问题在于您使用的是“切换”和单个处理程序。所以切换发生在鼠标进入和鼠标退出时。如果您从触发器 div 开始,退出会使其第一次切换。

要解决此问题,请使用两个处理程序:

$(document).ready(function() 
    $("#trigger").hover(function() 
        $("#mask").animate(
            width: '0px',
        , 250, 'easeout');
    ,function() 
        $("#mask").animate(
            width: '100px',
        , 250, 'easeout');
    );
);

当然,你必须有#mask 的宽度。如果它是可变的,您仍然可以解决这个问题。

【讨论】:

这完全正确。在你打败我之前,我只是在小提琴上测试它。只是测试时的观察,使用静态值而不是toggle 设置动画宽度不会隐藏元素(如果它有边框,当它达到 0 时它们仍会显示)。至少问题已被查明,并且 OP 应该能够从这里找到它。投票赞成 正如法国人所说,你们是“最好的”。非常感谢您的帮助。

以上是关于小 Jquery 动画功能问题的主要内容,如果未能解决你的问题,请参考以下文章

jQuery 不会工作?动画功能[关闭]

如何构建自定义 jQuery 缓动/弹跳动画?

Jquery切换动画不透明度功能

jquery 实现加入购物车功能

jQuery 动画序列

CSS 动画与 JQuery 动画