1

目前,我的菜单有一个功能,可以滚动到页面上的不同 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() 元素有关,但我不知道为什么。我很欣赏任何见解。谢谢!

4

3 回答 3

0

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

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

该元素应保持其原始尺寸而不显示。

于 2013-02-18T21:37:52.793 回答
0

解决

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

我想这是一个时间问题。

谢谢你的帮助。

于 2013-02-21T19:29:15.527 回答
0

而不是hide()and show(),你为什么不尝试.animate({'opacity':0})隐藏然后.animate({'opacity':1})显示。

于 2013-02-18T21:35:14.857 回答