Вы можете использовать javascript's onmouseover
событие, но считается лучшим использовать CSS, где это возможно.
Вот дем одно из возможных решений: (Edit on Codepen)
* {
box-sizing: border-box;
padding: 0;
margin: 0;
}
.container {
position: relative;
width: 600px;
height: 400px;
margin-left: 50px;
}
.container:hover img:nth-of-type(2) {
opacity: 1;
}
.container img {
position: absolute;
top: 0;
left: 0;
width: 600px;
height: 400px;
transition: opacity 1s ease-in-out 0s;
}
.container img:nth-of-type(1) {
opacity: 1;
}
.container img:nth-of-type(2) {
opacity: 0;
}
<div class="container">
<img src="https://placeimg.com/600/400/animals" />
<img src="https://placeimg.com/600/400/people" />
</div>
В основном, способ, которым это работает, что два изображения сделаны один и тот же размер с помощью CSS, и помещены на вершине друг друга (для этого и используется абсолютное позиционирование). Когда пользователь не нависает над ним, второе изображение будет иметь непрозрачность 0 (селектор nth-of-type(2)
выбирает второй элемент этого типа), поэтому он не виден, а первый имеет непрозрачность 1, поэтому он видимый. Когда пользователь нависает над ним, второму дается непрозрачность 1, поэтому он становится полностью видимым, и поскольку они оба одинакового размера и друг на друга, первый покрывается вторым. Это означает, что изображение меняется, когда вы наводите на него курсор.
Другим преимуществом этого является то, что, как вы можете видеть в демоверсии, он полностью поддается действию! Другие решения, такие как использование display: none
или фоновых изображений, не могут использоваться с переходами CSS, поскольку они не являются живыми свойствами, но непрозрачность является анимируемой, поэтому вы можете создавать такие переходы, как это! Удачи!
Если вы не поняли мое объяснение того, как это работает, не стесняйтесь просить разъяснений!
Это прекрасно работает, спасибо! У меня небольшая проблема, знаете ли вы, почему по какой-то причине, когда я пытаюсь редактировать положение изображений (через прописку, верхнюю, левую и т. Д.), Они не двигаются? В настоящий момент они находятся в верхнем левом углу, но мне нужно их перемещать, но с небольшими проблемами это происходит. – toadflax
Вам нужно переместить весь div.content, чтобы он перемещался, так как перемещал отдельные изображения, прекратив это с рабочей XP. Это работает для вас? ** EDIT: я отредактировал демо выше, чтобы показать вам, как его переместить! ** –
Эта работа отлично, спасибо! Просто быстрый вопрос, возможно ли переместить изображение, которое исчезает ** в **? то есть изображение ** за **, которое вы видите перед тем, как наведите курсор мыши. – toadflax