親コンテナ内のコンテナ間でフェードインおよびフェードアウトする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)をクリックします。正しいコンテンツでフェードインし、2つを切り替えます。フッターの下に余分なスペースがなく、空のコンテナーが入ったページ全体にページが収まるようにしてください。次に、ボタンをクリックして少し下にスクロールし、2つのボタンを切り替えます。ページジャンプについて私が何を意味するかがわかります。
コードは次のとおりです。
$("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");
});