この関連する質問を見つけました。
コメントによると、これは「すべての主要なブラウザーでサポートされてelement.scrollIntoView()
いる」ため、アクティブな要素に使用できます。
同じことを行うjqueryプラグイン(3番目の回答)への言及もあります。
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);
}
}
});