サイトのコンテンツの上にポップアップしてコンテンツをプッシュして連絡先フォームを表示する、自分のサイトにjqueryアコーディオンが動作しています。トリガーはトップバー内のメニュー項目です。私はトップバーがべたつかないようにしたいので、アコーディオンが開く前にトップページまでスクロールする必要があります。現在、ボタンをクリックすると、上部にスクロールし、同時にアコーディオンが開きますので、フォームは非表示になり、scrollTopを実行した後に手動でスクロールしてフォームを表示する必要があります。 scrollTopが実行されるまで、アコーディオンが開かないようにするにはどうしたらいいですか?また、ページが既に近くにある場合やアコーディオンのオープニングに遅延がない場合(setTimeoutは役に立ちません)。これまでのコードは、これまで通りです。jquery.accordion delay open
function initContactAccn() {
$("#toggle-o").on("click", function(event) {
$("[data-accordion] [data-control]").click();
});
};
initContactAccn();
function jqueryAccordion() {
$('#contact-accordion').accordion({
"transitionSpeed": 500,
collapsible: true,
heightStyle: "content",
beforeActivate: function(event, ui) {
$("html, body").animate({ scrollTop: 0 - 422 }, "fast");
return false;
}
});
};
jqueryAccordion();
私はこれが意味をなされることを望みます。どのような洞察にも感謝します。 Btw、422はアコーディオンの高さです。
スクロールトップが閉じるのを待たずに、アコーディオンのタイムアウトを設定して、$( "body")とscrollTop()の値と希望する値の差を計算して、 。 – thegunmaster
残念ながら正しい動きで、間違いなく動いています...ありがとう – pjldesign