Адаптивный способ идеально выровнять изображение меньшего размера с определенной точкой на большом изображении «background-size: cover»

#javascript #html #css

#javascript #HTML #css

Вопрос:

Это вопрос, который возникает довольно часто, когда я создаю сайты. Я никогда не придумывал решения, но я подумал, что, возможно, какой-нибудь умный участник SO сможет это решить, так что вот:

Допустим, у меня есть большое фоновое изображение на всю страницу background-size:cover . Я хочу, чтобы определенная часть изображения находилась в состоянии наведения, например, скажем, это большое изображение автомобиля, едущего по горе. Если вы наведете курсор на автомобиль, я хочу, чтобы он был заменен светящимся автомобилем.

Один из способов, которым я мог бы это сделать, — использовать javascript для замены всего фонового изображения на то же изображение горной сцены, но со светящимся автомобилем. Но, очевидно, для этого требуется дополнительная загрузка большого изображения. (Как в этом примере).

Для меня было бы лучше иметь другой div, который закрывает автомобиль, и просто назначить новый фон внутреннему div, который идеально соответствует родительскому изображению.

Это просто сделать невосприимчивым способом (см. Этот Пример), но я не могу придумать способ сделать это с адаптивным background-size:cover изображением.

Похоже, что может быть решение, возможно, с использованием подгонки объекта или чего-то в этом роде. Но ничего не приходит на ум. Вот адаптивная версия пера (которая не работает, но демонстрирует мою желаемую настройку).

Может кто-нибудь придумать способ достижения этого? Какие другие методы могут здесь работать?

Спасибо

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

1. можете ли вы объяснить, чего вы хотите достичь, вы делитесь только своей проблемой и мыслями

2. @Aman В самой простой форме: у меня есть кнопка внутри отзывчивого родительского div. Родительский div имеет фоновое изображение с «background-size: cover», а кнопка имеет фоновое изображение, которое является частью фонового изображения родительского div. Я хочу, чтобы кнопка идеально совпадала с родительской, чтобы наложение изображения не выглядело. И я хочу, чтобы это было отзывчивым.

3. Как насчет использования изображения, такого как png или gif, которое имеет ту же ширину и высоту, но прозрачный фон?

4. @JSKIM Спасибо. Я думаю, что именно так мне придется это сделать. Я хотел избежать этого, потому что это означает загрузку двух больших изображений, но на самом деле, протестировав его, png, который в основном прозрачный, не создает очень большого размера файла.