У меня есть этот код рендеринга в моем компоненте (при этом отображается неупорядоченный список li
элементов, каждый из которых имеет свое изображение):
<div className="thumbnail-photos-wrapper">
{spot.thumbnail_image_urls ? spot.thumbnail_image_urls.map(url =>
<div className="thumbnail-image-wrapper">
<img src={url} alt="Thumbnail photo" />
</div>) : ''}
</div>
И когда я нахожусь над одним из этих изображений Я хотел бы, чтобы другие изображения были серыми. Я нашел решения о серости / затемнении всего фона, но это не совсем то, что мне нужно; Мне бы хотелось, чтобы только изображения, которые не отображаются в сером цвете.
Я также читал, что лучше использовать состояния для взаимодействия с HTML элементами в приложении JS / React, однако я не думаю, что это сработает. Если бы в приведенном выше коде рендеринга имелись динамические c HTML классы, которые зависели от переключения состояния, при переключении он переключал бы все имена классов (эффективно изменяя все имена классов для оболочки изображений, если состояние было истинным или false; я хочу изменить только внешний вид необнаруженных изображений!).
Я также думал о том, чтобы сделать что-то вроде этого:
<div className="thumbnail-photos-wrapper">
{spot.thumbnail_image_urls ? spot.thumbnail_image_urls.map(url =>
<div className="thumbnail-image-wrapper">
<div className="overlay-wrapper"></div>
<img src={url} alt="Thumbnail photo" />
</div>) : ''}
</div>
Где у меня есть отдельный div для держите оверлей Я думал, что у этого overlay-wrapper
может быть изначально display: none
(или что-то еще на этот счет), а затем, когда пользователь наводит курсор на изображение, оно становится видимым. Тем не менее, я считаю, что это также наложило бы наложенное изображение, а это не то, что я хочу.
Помощь приветствуется!