javascript - 为什么我的 jQuery 转换有问题?

标签 javascript jquery html css

我有一个带有 css 覆盖的 jQuery 过渡,如果用户将鼠标悬停在上面一秒钟或更长时间,它会正常工作....但是,如果用户快速将鼠标悬停在上面,则覆盖文本将保持不变,没有覆盖背景。这是我的 jQuery 代码:

$(".cascade-t1").hover(function(){
$(".cascade-corner").fadeOut();
$(".overlay-t1").animate({"left": "-300px"}, 300, function(){
    $(".cascade-overlay-content").fadeIn(200);    
 });


}, function(){

   $(".cascade-corner").fadeIn();
    $(".cascade-overlay-content").fadeOut(200, function(){
    $(".overlay-t1").animate({"left": "130px"}, 300);    
   });

});

这里是 the script in action

最佳答案

看起来问题是在 mouseenter 动画完成之前你没有 fadeIn() .overlay-t1 文本,而在 mouseleave 上你 fadeOut() 在动画之前立即输出文本。当您将鼠标移入和移出的速度比初始动画快时,代码将淡出文本然后再次淡入(您看到的问题)。

一个可能的解决方案是稍微改变底部 (mouseleave) 功能,使其更接近顶部 (mouseenter) 功能。像这样的东西:

 $(".cascade-corner").fadeIn();
 $(".overlay-t1").stop(true, true).animate({"left": "130px"}, 300, function () {
     $(".cascade-overlay-content").fadeOut(200);
 });

.stop() 是为了在有人向盒子发送垃圾邮件时防止动画反复播放。

FIDDLE DEMO

关于javascript - 为什么我的 jQuery 转换有问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21315290/

相关文章:

javascript - 如何期望一个函数调用另一个函数?

javascript - 如何将当前日期与javascript或jquery中的输入日期进行比较

javascript - jQuery 函数自动重新加载页面

javascript - 必须单击两次才能切换 1 个功能;可以在另一个中点击一次

javascript - 骨架 css 直到页面完成加载

javascript - 如何使用 JQuery 从表中选择最后一个不为空的单元格

javascript - 从 DOM 中删除特定子元素

javascript - Chrome 上获取 z-index 值的差异

javascript - 如何按复选框选中属性对表格进行排序

javascript - 如何在 angular5 html 文件中显示以下对象?