我的网站上有一个工作的jquery手风琴,它弹出网站内容并推送内容,显示联系表格。触发器是顶部栏内的菜单项。我希望我的topbar变得粘稠,所以现在我需要页面在手风琴打开之前滚动到顶部。当前单击按钮时,它会滚动到顶部并同时打开手风琴,因此表单被隐藏,您必须手动向上滚动以在执行scrollTop后查看表单。如何在执行scrollTop之前阻止手风琴打开,同时确保如果页面已经接近或在顶部,手风琴开放没有延迟(因此setTimeout将没有用)。到目前为止,这是我的代码:
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();
我希望这是有道理的。非常感谢任何见解。顺便说一句,422是手风琴的高度。
答案 0 :(得分:0)
先制作动画,然后在动画完成时调用手风琴:
function initContactAccn() {
$("#toggle-o").on("click", function(event) {
$("[data-accordion] [data-control]").click();
});
};
initContactAccn();
function jqueryAccordion() {
$("html, body").animate({ scrollTop: 0 - 422 }, "fast", function() {
$('#contact-accordion').accordion({
"transitionSpeed": 500,
collapsible: true,
heightStyle: "content"
});
});
};
jqueryAccordion();
$ .animate接受一个可选的第三个参数,它是动画结束后要执行的回调函数。