matchMedia("(min-width: 500px)").addListener(foo);
は何をしますか?それはaddListener()
の機能は何ですか?ビューポートの幅が変更されると、関数foo()
が実行されますか?addListenerはmatchmedia APIとどのように連携しますか?
答えて
はい、それはfoo
機能
時にメディアクエリの評価を行った結果、変更を実行します。
は、あなたの場合は
(MDNから)これは、あなたが大きな幅をその500pxなどでウィンドウを起動します。次に、以下500pxなどにサイズを変更する場合は、関数が実行されることを意味します。後で幅を500pxより大きくするように後でサイズを変更すると、この関数は再び実行されます。
この関数は、最初の引数としてMediaQueryListEvent
で呼び出されます。ブール値matches
プロパティが含まれています。これは、メディアクエリが現在ビューポートと一致するかどうかを示します。
(true
からfalse
またはfalse
からtrue
のいずれかのメディアクエリー変化の評価リスナーfoo()
が実行される。
matchMedia(...).addEventListener(foo)
とwindow.onResize(foo)
重要な違いがある。前者、foo()
意志で後でfoo()
がブラウザウィンドウのサイズが変わるたびに繰り返し実行されます。特定のブレークポイントをターゲットにしている場合は、他のロジックを実行する前にこれらをテストしてfoo()
にする必要があります。
matchMedia(...).addEventListener(foo)
ロジックを書くことで、ブラウザのディメンションやメディアクエリで評価できるその他の情報をテストするためのロジック(または他の関数呼び出し)を追加しなくても、より集中したロジックを書き込むことができます(foo()
)。 foo()
が実行頻度が低いという点でwindow.onResize(foo)
よりもmatchMedia(...).addEventListener(foo)
を使用すると、パフォーマンスが向上する可能性もあります。
免責事項:私は2つのアプローチの間で実際の性能比較を行っていません。私の前提は、実行されていないイベントハンドラは、それより速いという考えに基づいています。しかし、これは2つのアプローチの間のネイティブの違いを考慮に入れません。
- 1. matchmedia addListenerコールバック関数に引数を渡します。
- 2. HandlerManagerはソースとどのように連携しますか?
- 3. HTTP/2とCNAMEはどのように連携しますか?
- 4. PEARクラスコメントとファイルコメントスニフはどのように連携しますか?
- 5. nhibernateとasp.netはどのように連携しますか?
- 6. SASL Anonymousはxmppとどのように連携しますか?
- 7. subqとcfはどのように連携しますか?
- 8. VLCとFFMPEGはどのように連携しますか?
- 9. .matchとキャプチャグループはどのように連携しますか?
- 10. waitpidとptraceはどのように連携しますか?
- 11. CoberturaはJUnitとどのように連携しますか?
- 12. ReactとNodeJSはどのように連携しますか?
- 13. OSGIとJSFはどのように連携できますか?
- 14. ジェンキンスパイプラインはモノレポとどのように連携できますか
- 15. Passenger、Capistrano&SVNはどのように連携しますか
- 16. SinchはCodename APIと連携します
- 17. ログインシステムは一般にOOPとどのように連携しますか?
- 18. &&、範囲ベースのループとテンポラリはどのように連携しますか?
- 19. 「Priority」と「AbsoluteExpiration」のキャッシュはどのように連携しますか?
- 20. ApacheのhttpdとTomcatはどのように連携しますか?
- 21. Djangoの認証はどのようにSQL Serverと連携しますか?
- 22. JavaとMaven BuilderはEclipseでどのように連携しますか?
- 23. Javaは内部でクラスとどのように連携しますか?
- 24. TensorArrayとwhile_loopはテンソルフローでどのように連携しますか?
- 25. 恒久サブスクライバはJMSとどのように連携しますか?
- 26. img altタグはどのように動的コンテンツと連携しますか
- 27. GCはIEnumeratorとどのように連携して処理されますか?
- 28. SSL証明書とキーストアはどのように連携しますか?
- 29. require.jsは今後http2とどのように連携しますか?
- 30. 複数のハブはどのように相互に連携しますか?
'onresize'イベントとよく似ていませんか?私は 'window.onresize'をすでに持っていれば' addListener'が必要なのでしょうか? – user31782
@ user31782より複雑なメディアクエリを使用することができます。たとえば、特定の方向またはアスペクト比を要求することができます。 MDNの[メディアクエリの使用](https://developer.mozilla.org/en-US/docs/Web/CSS/Media_Queries/Using_media_queries)を参照してください。 –
しかし、私たちは 'addListener'関数もなく、これらの複雑なメディアクエリをすべて使うことができます。必要なのは 'matchMedia'オブジェクトと' onresize'イベントハンドラです。 – user31782