我有一个较大的图像,下面有两个较小的缩略图 - 标记如下:
<img src="../images/image.jpg" class="left main" alt="main image" />
<img src="../images/image2-thumb.jpg" class="left mainthumb" alt="image two" />
<img src="../images/image3-thumb.jpg" class="left thumb mainthumb" alt="image three" />
我想要image2-thumb或image3-thumb悬停以将image.jpg更改为悬停的图像src,但没有-thumb。
。因此,如果我徘徊在image2-thumb.jpg上,则image.jpg变为image2.jpg,依此类推。然后,在鼠标途中,我希望它恢复为原始的SRC。
我正在使用以下JavaScript进行此操作,但请单击:
$(function () {
$('.mainthumb').click(function () {
$('.main').attr('src', this.src.replace('-thumb', ''))
});
});
我想将其更改为悬停,但不确定如何。
使用.hover()
$(function () {
$('.mainthumb').hover(function () {
$('.main').prop('src', this.src.replace('-thumb', ''));
}, function () {
$('.main').prop('src', '../images/image.jpg');
}
});
并使用.prop()而不是.attr()
read .prop()vs .attr()
在不使用纯js的情况下执行此操作的最简单方法。
类似这样的东西
<img src="first.png" onmouseover="this.src='second.jpg';"
onmouseout="this.src='first-or-other-image.png'">
也许不是很漂亮,但工作正常
我将使用.hover()带回调
$('.mainthumb').hover(function () {
// change the src
}, function () {
// change back the src
});
将数据属性添加到第一个图像以存储原始文件指针(" image.jpg"),例如:
<img src="../images/image.jpg" data-original="../images/image.jpg" class="left main" alt="main image" />
然后将其添加到您的JavaScript:
$(function () {
$('.mainthumb').hover(function () {
$('.main').attr('src', this.src.replace('-thumb', ''))
}, function() {
var main = $('.main');
main.attr('src', main.attr('data-original'));
});
});
$('.mainthumb').mouseenter(function () {
// Do your stuff.
});
$('.mainthumb').mouseleave(function () {
// Do your stuff.
});
还请参见.hover()文档。