目に見えない要素に焦点を合わせるときに問題があります。マークアップ:
<div id="outer">
<div id="inner" style="top: 0;">
<div class="group" style="background: red;"><a href="#">X</a></div>
<div class="group" style="background: blue;"><a href="#">Y</a></div>
<div class="group" style="background: green;"><a href="#">Z</a></div>
</div>
</div>
<button onclick="document.getElementById('inner').style.top = '-182px';">Down</button>
そしてCSS:
#outer {
width: 300px;
height: 182px;
overflow: hidden;
background: black;
}
#inner { position: relative; }
.group { width: 300px; height: 182px; background: red;}
「下」ボタンを押すと、内側のスタイルが「上:-182px」になり、機能的には別のアイテムのグループが表示されます。また、コンポーネントは基本的に垂直グループ スライダーとして機能します。「Tab」を使用するまで、すべてが完全に機能します。スライダーが次のグループ ブラウザーを表示する直前に、属性を変更せずに内部 div を自動的にシフトします。
DOM または他の場所からブラウザーによって行われたオフセットを取得するための変更はありますか? フォーカス時のスクロールはデフォルトのブラウザー機能であることを知っているので、ブラウザーと戦うつもりはなく、そのようなスクロールを無効にすることはできないと確信しています。
js コードが実行される前にブラウザーがスクロールすることがわかりました。ブラウザの前にフォーカスイベントとスクロールをインターセプトする方法はありますか?