Изменение изображения в темном режиме

#javascript #html #css #mobile

#javascript #HTML #css #Мобильный

Вопрос:

У меня есть белое изображение в форме волны и оно анимировано, и когда пользователь открывает мой сайт на мобильных устройствах и включает темный режим, сайт будет темным, но это изображение все еще белое

Итак, мой вопрос в том, как я могу решить эту проблему? например, изменить изображение, если включен темный режим или что-то еще

Ответ №1:

Используйте <picture> элемент с вашим изображением. Внутри элемента добавьте один или несколько <source> элементов. Эти исходные элементы используют медиа-запрос, как в CSS, чтобы определить srcset , следует ли использовать ресурс в на основе медиа-запроса.

В вашем случае вы можете проверить prefers-color-scheme: dark запрос, чтобы узнать, включен ли темный режим.

Если он не включен, то используется значение по умолчанию src для изображения.
Если он включен, то элемент srcset on the <source> будет использоваться в качестве нового значения для элемента src on the image.

 <picture>
  <source srcset="dark-image.jpg" media="(prefers-color-scheme: dark)">
  <img src="light-image.jpg" alt="Animated wave shape">
</picture>
  

Комментарии:

1. Я думаю prefers-color-scheme: dark , что работает только в браузере Safari, верно?

2. Нет, поддержка довольно хорошая. caniuse предпочитает-цветовую схему .