我正在尝试将一串文字附加到src
上的图片的mouseover
属性,然后在mouseout
上删除该字符串。现在我有一半工作:
的Javascript
$('.singleSidebar .subnav img').mouseover(function(){
$(this).attr('src', function(index, attr) {
return attr.replace(/\.[^.]*$/, '_anim$&');
});
});
我在其他地方找到了此代码,所以我不确定如何修改它以删除_anim
上的字符串mouseout
。
答案 0 :(得分:2)
我建议只加载两张图片,然后只显示你想要的图像。这一切都可以用CSS完成。
给一个图像一个"动画"和另一类"非动画"。添加此CSS以处理onhover更改:
.singleSidebar .subnav img.animated,
.singleSidebar .subnav img.nonanimated:hover
{
display: none;
}
.singleSidebar .subnav img.animated:hover,
.singleSidebar .subnav img.nonanimated
{
display: block
}
这会更好用,因为浏览器会立即加载图片,而不是当你将鼠标悬停时,它也会更加清洁IMO
EDIT 啊,如果你需要他们开始玩悬停,那么你需要按照自己的方式去做。尝试这样的事情:
$('.singleSidebar .subnav img').each(function(e){
var src = $(this).attr('src');
$(this).hover(function(){
$(this).attr('src', src.replace('.gif', '_anim.gif'));
}, function(){
$(this).attr('src', src);
});
});
答案 1 :(得分:1)
$(".singleSidebar .subnav img").hover(
function () {
$(this).attr('src', function(index, attr) {
return attr.replace(/\.[^.]*$/, '_anim$&');
});
},
function () {
$(this).attr('src', function(index, attr) {
return attr.replace('_anim', ''); // or any other replace
});
}
);
有关详细信息,请参阅http://api.jquery.com/hover/
答案 2 :(得分:1)
var src;
$("img").hover(function() {
src = $(this).attr("src");
$(this).attr("src", "replacementsrc");
},function() {
$(this).attr("src", src);
});
答案 3 :(得分:0)
应该可以使用.mouseout并反转替换。
$('.singleSidebar .subnav img').mouseout(function(){
$(this).attr('src', function(index, attr) {
return attr.replace(/_anim$/, '');
});
});