0

我在页面顶部有一个导航菜单,可在页面内重定向。但是,一些 div 最初是隐藏的,需要 1 秒钟才能显示,因此锚标记不会将浏览器窗口向下移动足够远。我想将链接延迟一秒钟以等待 div 在窗口向下滚动之前可见。

div使用打开

$.slideToggle(1000)

导航菜单使用简单的

<a href='#divid'>link to divid</a>
4

2 回答 2

0

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.
                                  });
});

假设这会起作用。

于 2012-12-05T15:46:56.030 回答
0

使用设置超时功能,并在触发下一个事件之前给它一个延迟。

$("#divid").bind("click", function() {
    setTimeout(function() {
        $("#divid").slideToggle(1000);
    },1000);
});
于 2012-12-05T15:47:01.970 回答