日期:2014-05-17  浏览次数:20750 次

怎么给下面jquery代码添加延迟
$(".menu").hover(function(){
changeicon($(this).children("a"));
$(this).children("ul").slideDown();
},function(){
changeicon($(this).children("a"));
$(this).children("ul").slideUp();
});
在导航中 当鼠标移动到主菜单时,让其展开子菜单 怎么能让它延迟展开啊



------解决方案--------------------
setTimeout(function,time) 可以很好的解决你的问题
------解决方案--------------------
onMouseOver = "aa"

function aa(){
setTimeout(bb,1000)1000代表1秒


}

function bb(){
$(".menu").hover(function(){
changeicon($(this).children("a"));
$(this).children("ul").slideDown();
},function(){
changeicon($(this).children("a"));
$(this).children("ul").slideUp();
});

}
------解决方案--------------------
把子菜单放到div中 然后使用$("#divObj").slideToggle(2000);//窗帘效果的切换,点一下收,点一下开,参数可以无,参数说明同上 

------解决方案--------------------
5楼的可以,你去找个jquery的帮助文档看看吧,里面有show(),hidden()等关于效果的一些方法
------解决方案--------------------
你这个延迟加载的问题,是出在数据访问数据库的时候,你要把要显示的东西写成延迟加载模式的,当你鼠标移动到上边的时候再随便调用一下你要延迟加载的对象的属性,不就打破延迟加载了么,然后就加载出来了
------解决方案--------------------
还有一种是一次性就取出来了,写一段JS把他隐藏起来,鼠标上去再显示出来也一样,当然要看环境了,数据量大的时候,火做手机网站的时候,还是用延迟加载比较好
------解决方案--------------------
你为什么要做出延迟加载的么,你看到有一些进度条或什么的,那都是骗人的啊,只是你需要的数据走数据库查的时候需要一段时间,那程序员不可能什么都不做吧,所以就做一些进度条啊,什么的,来掩盖一下啊,你要想的话,你可以做个动态的图片在那里,数据没出来的时候就是他,数据传上来了就显示啊
------解决方案--------------------
通过高度变化(向上减小)来动态地隐藏所有匹配的元素,在隐藏完成后可选地触发一个回调函数。

这个动画效果只调整元素的高度,可以使匹配的元素以“滑动”的方式隐藏起来。在jQuery 1.3中,上下的padding和margin也会有动画,效果更流畅。

参数
speed[,fn]Number/String,FunctionV1.0speed:三种预定速度之一的字符串("slow","normal", or "fast")或表示动画时长的毫秒数值(如:1000)

fn:在动画完成时执行的函数,每个元素执行一次。

[speed],[easing],[fn]Number/String,String,FunctionV1.4.3speed:三种预定速度之一的字符串("slow","normal", or "fast")或表示动画时长的毫秒数值(如:1000)

easing:(Optional) 用来指定切换效果,默认是"swing",可用参数"linear"

fn:在动画完成时执行的函数,每个元素执行一次。

示例
描述:
用600毫秒缓慢的将段落滑上

jQuery 代码:
$("p").slideUp("slow");描述:
用200毫秒快速将段落滑上,之后弹出一个对话框

jQuery 代码:
$("p").slideUp("fast",function(){
alert("Animation Done.");
 });