我们如何在下拉子菜单中设置5秒的时间或延迟
How can we set time or delay of 5 seconds in dropdown sub menu?
如何在下拉菜单中设置5秒的时间或延迟。
要求是这样的:当有人将鼠标悬停在主菜单上时,只有当鼠标离开主菜单或子菜单时,它才会显示该子菜单5秒。
现在,我已经将ul的高度增加到横幅图像的高度,这样在你将鼠标移出横幅区域之前,它不会被隐藏。
以下是网站链接:http://transitions.advisorproducts.com/home
这是一个参考网站链接:http://focusyou.com/home(我的要求是这样的,但我不想复制这个代码,我想在我自己的代码中实现)
下面是js:
$(function()
{
$("ul.dropdown li").hover(function()
{
$(this).addClass("hover");
$('ul:first',this).css('visibility', 'visible');
}, function()
{
$(this).removeClass("hover");
$('ul:first',this).css('visibility', 'hidden');
});
$("ul.dropdown li ul li:has(ul)").find("a:first").append(" » ");
});
提前感谢:)
您可以在此处进行测试:http://jsfiddle.net/alokjain_lucky/KQAYT/2/
如果您想抽象此行为而不处理计时器等,请使用以下方法:
http://cherne.net/brian/resources/jquery.hoverIntent.html
否则,只需使用计时器:
$(function()
{
var hideTimer;
$("ul.dropdown li").hover(function()
{
$(this).addClass("hover");
$('ul', this).css('visibility', 'hidden'); //this should fix the error you mentioned!
$('ul:first',this).css('visibility', 'visible');
}, function()
{
if(hideTimer) {
clearTimeout(hideTimer);
hideTimer = setTimeout(function(){
$(this).removeClass("hover");
$('ul:first',this).css('visibility', 'hidden');
}, 5000);
}
});
$("ul.dropdown li ul li:has(ul)").find("a:first").append(" » ");
});
不过,我肯定会推荐jquery hoverIntent插件,它对悬停意图有很好的抽象,而且没有手动定时器管理。
试试这个:
$(function()
{
var timer = 0;
$("ul.dropdown > li").hover(function()
{
if (timer) clearTimeout(timer);
$("ul.dropdown > li").removeClass("hover");
$("ul.dropdown > li ul").css('visibility', 'hidden');
$(this).addClass("hover");
$('ul:first',this).css('visibility', 'visible');
}, function()
{
var link = $(this);
timer = setTimeout(function(){
$(link).removeClass("hover");
$('ul:first',link).css('visibility', 'hidden');
}, 5000);
});
$("ul.dropdown li ul li:has(ul)").find("a:first").append(" » ");
});
- setTimeout函数将添加指定毫秒数的延迟
- 这个关键字在setTimeout函数中不起作用,所以我在变量链接中使用了对this值的引用
以下是代码的工作示例:http://jsfiddle.net/alokjain_lucky/KQAYT/
相关文章:
- 设置随机数,然后每5秒随机减少一次,直到达到0(javascript)
- 在JS中设置计时器1秒
- 如果有办法在 N 秒内加载未触发,则有没有办法设置 img src
- 我们如何在下拉子菜单中设置5秒的时间或延迟
- 在IE 8中以每秒50次的速度设置间隔slugish
- 在导航按钮上设置 1 秒超时
- 如何使用设置为特定时间的小时、分钟和秒进行倒计时
- 将JavaScript日期格式设置为小时:分钟:秒
- 如何设置此“;滑块”;每5秒更换一次
- 如何将画布背景颜色设置为闪烁'n'秒
- jQuery条幅旋转过快,即使setTimeout设置为10秒
- 使用Javascript将ajax调用的速率限制和队列设置为每15秒一次
- 在clearInterval按钮后的5秒内再次设置Interval
- 如何将小时、分钟、秒设置为GMT中的日期
- 如何在使用jQuery UI日期选择器时使用小时、分钟和秒设置日期格式
- 如何设置此鼠标悬停显示,即使鼠标悬停超过3秒
- Google地图每隔x秒设置标记纬度和经度
- 如何设置ajax运行每5秒
- 设置一个计时器,在N秒后提交表单,如果谷歌地图地理代码没有返回
- 每X秒动态创建一个表,使用jquery移动版的css设置