JavaScript でダーク モードを検出するにはどうすればよいですか?

Linda Hamilton
リリース: 2024-11-14 15:36:01
オリジナル
340 人が閲覧しました

How Can You Detect Dark Mode in JavaScript?

Detecting Dark Mode in JavaScript

Many modern operating systems like Windows and macOS offer dark mode as an option to enhance user experience and reduce eye strain in low-light settings. As a developer, it's beneficial to be able to detect the preferred color scheme of the user's operating system to provide a seamless user experience.

CSS Media Queries for Dark Mode

For CSS, the @media (prefers-dark-interface) media query can be used to apply styles specifically for dark mode. However, when using APIs like Stripe Elements that utilize JavaScript for styling, a different approach is needed.

JavaScript Solution

To determine the operating system's preferred color scheme in JavaScript, you can use the following code:

if (window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches) {
  // dark mode detected
}
ログイン後にコピー

This code utilizes the window.matchMedia() API to check if the user's browser supports media queries and whether the '(prefers-color-scheme: dark)' media query is matched. If the query matches, it indicates that the user has enabled dark mode on their operating system.

Monitoring Color Scheme Changes

If you need to respond to changes in the user's color scheme preferences, you can use the addEventListener() method to listen for events on the media query. The following code adds an event listener that will trigger a callback function whenever the color scheme changes:

window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', event => {
  const newColorScheme = event.matches ? "dark" : "light";
  // Perform necessary actions based on the new color scheme
});
ログイン後にコピー

By utilizing these techniques, you can effectively detect and respond to the user's preferred color scheme, ensuring a consistent and optimized user experience regardless of whether they're using light or dark mode.

以上がJavaScript でダーク モードを検出するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート