目前我的菜单功能可以滚动到页面上的不同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()元素有关,但我不知道为什么。我很欣赏任何见解。谢谢!
答案 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()
完成时触发。
我想这是时间问题。
感谢您的帮助。