我有一个 jQuery 脚本,可以在其父容器内的容器之间淡入淡出。根据单击的按钮(设计、网页),它确定哪个容器 ( #design
, #web
) 淡出以及哪个容器在其位置淡入。
现在,关键就在这里,这两个容器(#design
, #web
)的高度不同,所以当我在这些容器之间淡出和淡入时,fadeIn()
函数调用完成后页面会直接跳转到特定位置。该位置(x,y)与如果在父容器(即空容器)内没有容器 ( #design
, ) 并且页面一直滚动到底部时页面的位置完全相同。#web
有没有其他人遇到过这个?非常感谢任何建议,因为这个问题一直困扰着我。
PS。我已经在 Firefox 和 Safari 中对此进行了测试,并且都显示了相同的问题。
// 编辑 1: 这是一个您可以查看的 URL:http ://toolboxstudio.co.za/version3/?page=packages
如果您想查看容器看起来如何是空的:http ://toolboxstudio.co.za/version3/?page=packages#empty ,然后您可以单击横幅下方的按钮(设计或 Web)。它将淡入正确的内容,并在两者之间切换。确保您的页面仅适合整个页面,其中包含空容器,页脚下方没有额外空间。然后单击按钮并向下滚动一小段,在两个按钮之间切换。你会明白我所说的页面跳转是什么意思。
这是代码:
$("div.design.button a").click(function () {
$(this).parent("div").addClass("active");
$("div.web.button").removeClass("active");
if ($("div.web_content").is(":visible")) {
$("div.web_content").fadeOut(function () {
$("div.design_content").fadeIn();
});
} else {
$("div.design_content").fadeIn();
}
window.location.hash = "#design";
resizeWindow();
e.returnValue = false;
e.preventDefault();
return false;
alert("hello");
});
$("div.web.button a").click(function () {
$(this).parent("div").addClass("active");
$("div.design.button").removeClass("active");
if ($("div.design_content").is(":visible")) {
$("div.design_content").fadeOut(function () {
$("div.web_content").fadeIn();
return false;
});
} else {
$("div.web_content").fadeIn();
return false;
}
window.location.hash = "#web";
resizeWindow();
e.returnValue = false;
e.preventDefault();
return false;
alert("world");
});