我发现了这个相关的问题。
根据评论,您可以将element.scrollIntoView()
其用于活动元素,因为这'在所有主要浏览器中都受支持'。
还提到了一个jquery 插件(在第三个答案中),它做同样的事情。
如果你绑定到change
手风琴的事件,以下应该工作:
$('#myaccordion').accordion({
// .. other options
change: function(event, ui) {
ui.newHeader.scrollIntoView(); // or scrollintoview(),
// if you're using the plugin
}
});
我没有尝试过任何一种解决方案,如果其中一个有效,也许您可以发表评论?
编辑
在重新阅读您的问题之后,您似乎不需要该scrollIntoView
功能/插件,因为您按下的按钮通常已经在视图中(您将如何按下它......)。
因此,您可能只使用window.scroll
(或您使用的任何可滚动的顶级容器)。
根据您的 jsfiddle 示例,以下内容似乎有效:
$( "#accordion" ).accordion({
collapsible: true,
active: false,
autoHeight: false,
clearStyle: true,
change: function(event, ui) {
if (ui.newHeader) {
var scrollTop = ui.newHeader.position().top;
window.scroll(0,scrollTop);
}
}
});