ホームページ  >  に質問  >  本文

forEach ループ後のscrollIntoViewの実行が早すぎます

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

リーリー

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

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

P粉504920992P粉504920992370日前600

全員に返信(1)返信します

  • P粉633733146

    P粉6337331462023-09-17 17:56:18

    これが私の解決策です。

    リーリー

    返事
    0
  • キャンセル返事