繁体   English   中英

更改图像onmouseover

[英]Change image onmouseover

什么是鼠标悬停时更改图像的正确方法(使用/不使用jQuery)?

<a href="#" id="name">
    <img title="Hello" src="/ico/view.png" onmouseover="$(this).attr('src','/ico/view.hover.png')" />
</a>

好的,这是有效的,但是如何在mouseout之后改回原始图像?

如果有可能,我想在没有document.ready函数的情况下内联这个东西。

这是一个原生的javascript内联代码来更改图像onmouseover&onmouseout:

<a href="#" id="name">
    <img title="Hello" src="/ico/view.png" onmouseover="this.src='/ico/view.hover.png'" onmouseout="this.src='/ico/view.png'" />
</a>

尝试这样的事情:

HTML

<img src='/folder/image1.jpg' id='imageid'/>

jQuery的:

$('#imageid').hover(function() {
  $(this).attr('src', '/folder/image2.jpg');
}, function() {
  $(this).attr('src', '/folder/image1.jpg');
});
  • DEMO

编辑:( OP HTML发布后)

HTML:

<a href="#" id="name">
    <img title="Hello" src="/ico/view.png"/>
</a>

jQuery的:

$('#name img').hover(function() {
  $(this).attr('src', '/ico/view1.png');
}, function() {
  $(this).attr('src', '/ico/view.png');
});
  • DEMO

你要在/之前放一两个点

('src','./ico/view.hover.png')"

这是一个例子:

HTML代码:

<img id="myImg" src="http://static.jquery.com/files/rocker/images/logo_jquery_215x53.gif"/>

JavaScript代码:

$(document).ready(function() {
    $( "#myImg" ).mouseover(function(){
        $(this).attr("src", "http://www.jqueryui.com/images/logo.gif");
    });

    $( "#myImg" ).mouseout(function(){
        $(this).attr("src", "http://static.jquery.com/files/rocker/images/logo_jquery_215x53.gif");
    });
});

编辑:对不起,你的代码有点奇怪。 现在我明白你在做什么了。 ;)当然,悬停方法更好。

jQuery有.mouseover().html() 您可以将mouseover事件绑定到一个函数:

  1. 隐藏当前图像。
  2. 用您要切换的html图像替换当前的html图像。
  3. 显示您隐藏的div。

当你得到mouseover事件表明光标不再悬挂在div上时,可以做同样的事情。

你可以使用CSS做到这一点。

您需要在<a>放置另一个标记,然后您可以在a:hover上更改CSS background-image属性。

HTML:

<a href="#" id="name">
  <span>&nbsp;</span> 
</a>

CSS:

a#name span{
  background-image:url(image/path);
}

a#name:hover span{
  background-image:url(another/image/path);
}
<a href="" onMouseOver="document.MyImage.src='http://icons.iconarchive.com/icons/uiconstock/round-edge-social/72/ask-icon.png';" onMouseOut="document.MyImage.src='http://icons.iconarchive.com/icons/uiconstock/round-edge-social/72/arto-icon.png';">
<img src="http://icons.iconarchive.com/icons/uiconstock/round-edge-social/72/arto-icon.png" name="MyImage">

演示http://jsfiddle.net/W6zs5/

我知道有人以同样的方式回答了这个问题,但是我做了自己的研究,之前我写过这篇文章来看看答案。 所以:我正在寻找一些简单的内联JavaScript,只需要在img ,而不是将它“包装”到a标签中(所以不使用document.MyImage ,我使用了this.src

<img 
onMouseOver="this.src='ico/view.hover.png';" 
onMouseOut="this.src='ico/view.png';" 
src="ico/view.png" alt="hover effect" />

它适用于所有当前更新的浏览器; IE 11(我还在IE5及更高版本的IE开发者工具中测试过它),Chrome,Firefox,Opera,Edge。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM