许多现代操作系统(例如 Windows 和 macOS)都提供深色模式作为选项,以增强用户体验并减少低光环境下的眼睛疲劳。作为开发人员,能够检测用户操作系统的首选配色方案以提供无缝的用户体验是有益的。
对于 CSS,@ media (prefers-dark-interface) 媒体查询可用于应用专门针对暗模式的样式。但是,当使用像 Stripe Elements 这样利用 JavaScript 进行样式设置的 API 时,需要采用不同的方法。
要确定 JavaScript 中操作系统的首选配色方案,您可以使用以下代码code:
if (window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches) { // dark mode detected }
此代码利用 window.matchMedia() API 检查用户的浏览器是否支持媒体查询以及“(prefers-color-scheme: dark)”媒体查询是否匹配。如果查询匹配,则表明用户在其操作系统上启用了深色模式。
如果您需要响应用户配色方案首选项的更改,您可以可以使用 addEventListener() 方法来监听媒体查询上的事件。以下代码添加了一个事件监听器,每当配色方案发生变化时,该事件监听器都会触发回调函数:
window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', event => { const newColorScheme = event.matches ? "dark" : "light"; // Perform necessary actions based on the new color scheme });
通过利用这些技术,您可以有效地检测并响应用户首选的配色方案,从而确保一致且一致的配色方案。无论用户使用浅色模式还是深色模式,都优化了用户体验。
以上是如何在 JavaScript 中检测暗模式?的详细内容。更多信息请关注PHP中文网其他相关文章!