我寻找一种方法来改变所有的图像在一排时,悬停,但我找不到任何;我使用了下面的脚本,在其中我想循环浏览图像并更改它们。这样可能吗?有更好的办法吗?
let imageSources = ["images/cat1.jpg", "images/cat2.jpg", "images/cat3.jpg"];
let images = document.querySelectorAll('.img-fluid.img-thumbnail');
function changeImg(index) {
return function() {
images[index - 1].src = imageSources[index];
};
}
function restoreImg(index) {
return function() {
images[index - 1].src = "images/frozen.jpg";
};
}
images.forEach(function(index) {
image[index].addEventListener('mouseover', changeImage(index));
image[index].addEventListener('mouseout', restoreImage(index));
};
<div class="row">
<div class="col-md-4">
<img src="images/frozen.jpg" class="img-fluid img-thumbnail mb-4" alt="">
</div>
<div class="col-md-4">
<img src="images/frozen.jpg" class="img-fluid img-thumbnail mb-4" alt="">
</div>
<div class="col-md-4">
<img src="images/frozen.jpg" class="img-fluid img-thumbnail mb-4" alt="">
</div>
</div>
我尝试了多种方法,但图像不会改变,当我悬停在他们。
2条答案
按热度按时间zkure5ic1#
你可以将“hover images”添加到HTML本身,然后在CSS中使用hover来显示/隐藏图像。优点是所有的图像都是从一开始就加载的,你不需要改变DOM。
现在,我不知道图像对HTML的语义是否重要。如果不是,图像只是作为图标使用,你可以将所有的图像移动到CSS:
bvhaajcl2#
你好亲爱我修复你的代码根据你的要求。