forEach ループ後のscrollIntoViewの実行が早すぎます
P粉504920992
P粉504920992 2023-09-17 00:27:54
0
1
665

次の 2 つの関数があります...

リーリー

sizeSearch() 関数は正常に動作します。 clearSizeSearch() 関数が呼び出されると、すべての <li> 要素が期待どおりに再表示され、期待された .active 要素がスクロールして表示されます。ビューが表示されますが、すぐにコンテナ要素の最上部にスクロールして戻ります (または、DOM の安定が完了した後、この方法で再レンダリングされる可能性があります)。

コンソールで document.querySelector('ul.size-ranks li.active').scrollIntoView(); を手動で実行してから、clearSizeSearch() を実行すると、それはちょうどうまくいきます。これは、clearSizeSearch() の実行時にスクロールしてビューに表示されるのが簡単に確認できるという事実と相まって、前のコマンドの実行が完了する前に実行される可能性があることを示しているようですが、私の知る限り、 forEach()デフォルトは非同期ではないため、その後のコマンドは完了するまで実行されません。

P粉504920992
P粉504920992

全員に返信(1)
P粉633733146

これが私の解決策です。

リーリー
いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート