首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQuery hoverIntent 2 div交互延迟

jQuery hoverIntent 2 div交互延迟
EN

Stack Overflow用户
提问于 2013-01-03 19:34:09
回答 2查看 286关注 0票数 0

我想显示几个blocks(Div),并使它们以相同的方式与同一个对象交互。

这里是一个 jsFiddle演示

模拟错误的步骤

  1. Rollover第一个块这将触发一个动画,它打开对象。
  2. 然后,如果您Rollover,第二个块,我想保持对象打开,但所发生的是,对象第一关闭,然后再次打开。

目标

当我翻滚块时,保持物体打开。

增加了后代的原始代码:

代码语言:javascript
复制
$('.object').css({ "top": '-180px' });
$(".cont1,.cont2").hoverIntent(mousein_triger , mouseout_triger);

function mousein_triger(){
        $('.object').stop().animate({"top": "0px"}, 300);
    }
function mouseout_triger() {
        $('.object').stop().animate({"top": "-180px"}, 1000);
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-01-03 19:42:19

我使用了计时器(全局)--这里是jsfiddle:http://jsfiddle.net/zL5jZ/

代码语言:javascript
复制
var timer = false;
function mousein_triger(){
        clearTimeout(timer);
        $('.object').stop().animate({"top": "0px"}, 300);
    }
function mouseout_triger() {
        timer = setTimeout(function(){
            $('.object').stop().delay(1000).animate({"top": "-180px"}, 1000);
        }, 400)
}

400毫秒后,没有悬停一个块,该块关闭自己,否则它将保持开放,如你所愿。

我说得对吗?

票数 1
EN

Stack Overflow用户

发布于 2013-01-03 19:48:58

解释为什么不起作用..。

问题是,如果动画已经启动,“stop ()”就会停止,但是如果它正在进行,则不会停止延迟。所以,如果你从一个盒子里移出来,等到蓝色的那个开始移动,然后迅速移回一个盒子里,它就会立即停止动画。如果您从一个框中移出并返回到一个框中,它将完成等待,然后完成整个动画。

要修复它,请使用@nicolast建议的计时器。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14145874

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档