我在页面顶部有一个导航菜单,可在页面内重定向。但是,一些 div 最初是隐藏的,需要 1 秒钟才能显示,因此锚标记不会将浏览器窗口向下移动足够远。我想将链接延迟一秒钟以等待 div 在窗口向下滚动之前可见。
div使用打开
$.slideToggle(1000)
导航菜单使用简单的
<a href='#divid'>link to divid</a>
http://api.jquery.com/slideToggle/ - 根据文档,你有一个回调,它允许你在动画完成时做一些事情。
因此,您可以执行以下操作:
$('a').click(function(e){
e.preventDefault(); //this will prevent immediate scrolling
$(this.href).slideToggle(1000, function(){
document.location.hash = $(this).attr("id")//now hash will be changed and window should be scrolled to according div.
});
});
假设这会起作用。
使用设置超时功能,并在触发下一个事件之前给它一个延迟。
$("#divid").bind("click", function() {
setTimeout(function() {
$("#divid").slideToggle(1000);
},1000);
});