隐藏元素后,滚动到顶部不起作用(jQuery)

时间:2013-02-18 18:26:32

标签: javascript jquery html css animation

目前我的菜单功能可以滚动到页面上的不同div,作为一种导航形式。目前我正在使用以下方法。

滚动到投资组合

$("html, body").animate({ scrollTop: $('#portfolio').offset().top }, 600);

由于我是动态构建整个页面,当有人点击链接时,我使用.hide()来隐藏主要页面元素,并生成其他内容。

function hideElements() {

$("#something").hide();

}

在内容页面上,如果他们想要返回投资组合,他们会再次点击投资组合链接。我使用以下方法来"滚动"他们到重新显示的元素。

$("#nav").click(){
    unhideMainElements();
    $("html, body").animate({ scrollTop: $('#portfolio').offset().top }, 1200);
    $("#container").fadeIn(300);
}

问题是,淡入淡出会起作用,但它不会滚动到元素。我认为它与.hide()元素和.show()元素有关,但我不知道为什么。我很欣赏任何见解。谢谢!

3 个答案:

答案 0 :(得分:0)

为什么不让hide()隐藏,然后show()展示,而不是.animate({'opacity':0}).animate({'opacity':1})

答案 1 :(得分:0)

您可以尝试使用visibility属性而不是display

$('#something').css({'visibility':'hidden'}); //or visible

元素应该保留原生尺寸而不显示。

答案 2 :(得分:0)

已解决

动画和fadeIn的两个功能已放入.show()中的unhideMainElements();回调中。这样,动画只会在所有.show()完成时触发。

我想这是时间问题。

感谢您的帮助。