【问题标题】:Change image once we hover on image is not working将鼠标悬停在图像上后更改图像不起作用
【发布时间】:2018-03-19 14:47:24
【问题描述】:

一旦我们将鼠标悬停在图像上,我想显示另一张图像。

<div>
  <a href="javascript:popWin('https://plus.google.com/share?url=<?php echo urlencode($productUrl); ?>',
           'google', 'width=640,height=480,left=0,top=0,location=no,status=yes,scrollbars=yes,resizable=yes');" 
     title="<?php echo $this->__('Share on Google Plus') ?>"><img src ="<?php echo $this->getSkinUrl('images/G+.png') ?>"/></a>
</div>

我尝试如下:

我添加了class="a1",但它对我不起作用。

<a class="a1"  href="javascript:popWin('https://plus.google.com/share?url=<?php echo urlencode($productUrl); ?>',
                     'google', 'width=640,height=480,left=0,top=0,location=no,status=yes,scrollbars=yes,resizable=yes');" 
   title="<?php echo $this->__('Share on Google Plus') ?>"><img src ="<?php echo $this->getSkinUrl('images/G+.png') ?>"/></a>

css

.a1:hover {
   background-image: url('images/G+1.png');
}

【问题讨论】:

  • 重复,你可以在这里找到答案:stackoverflow.com/questions/4717117/… :)
  • 为您的 DIV 设置类或 ID 并使用 :hover 更改图像...
  • @AaronLavers 请检查更新的问题并删除“重复”
  • @masmrdrr 请检查更新的问题
  • 只有当第一张图片也在 background-image 中而不是 img 标签中时,您才能使用您的 css - 正如您在@AaronLavers 所附问题中看到的那样

标签: javascript jquery html css


【解决方案1】:

这里有两种解决方案供您查询。 (鼠标悬停时更改图像)

HTML + JavaScript 演示

<div class="image_hover">
  <a href="#" rel="nofollow">
    <img src="http://i.imgur.com/h1hLX4Vb.jpg" height="160" onmouseout="this.src='http://i.imgur.com/h1hLX4Vb.jpg'" onmouseover="this.src='http://i.imgur.com/dmnwaafb.jpg'" width="160">
  </a>
</div>

HTML + CSS 演示

.image_hover {
    position: relative;
    cursor: pointer;
}
.image_hover img {
    position: absolute;
    transition: opacity .5s ease;
}
.image_hover img:hover {
    opacity: 0;
}
<div class="image_hover">
    <img src="http://i.imgur.com/h1hLX4Vb.jpg" width="160" height="160"/>
    <img src="http://i.imgur.com/dmnwaafb.jpg" width="160" height="160"/>
</div>

【讨论】:

    【解决方案2】:

    首先,给你的链接标签一些样式,设置它的背景。

    a.a1 {
      display: block;
      width: 100px;
      height: 50px; (width and height are whatever you need them to be)
      background: url('images/G+.png') no-repeat center center;
    }
    

    现在这是一个非常简单的示例,但它所做的是将您的链接设置为块级元素,给出图像背景的正确尺寸,然后将整个元素背景设置为图像。

    然后,对于翻转效果,您使用:

    a.a1:hover {
      background: url('images/G+1.png') no-repeat center center;
    }
    

    现在我喜欢将我的不重复和定位属性放在background 属性中,如果你真的想要的话,你可以将它们分成background-size 等。

    我知道在你的实现中你有一个 img 在那里设置图片,但对于你想要实现的目标,我建议使用 css 替代方案。

    关于该主题的链接(根据评论): CSS: image link, change on hover

    【讨论】:

    • 我按照你所说的在这里尝试过:&lt;a class="a1" style="background-image: url('&lt;?php echo $this-&gt;getSkinUrl('images/G+.png') ?&gt;');" href="javascript:popWin('https://plus.google.com/share?url=&lt;?php echo urlencode($productUrl); ?&gt;', 'google', 'width=640,height=480,left=0,top=0,location=no,status=yes,scrollbars=yes,resizable=yes');" title="&lt;?php echo $this-&gt;__('Share on Google Plus') ?&gt;"&gt; &lt;/a&gt; 现在图像不可见。可能是我做错了什么,请检查代码。
    • 感谢支持
    【解决方案3】:

    @AaronLavers 评论中的附加答案(使用background-image 并将其替换为:hover),您可以使用:before - 伪类和content 属性。

    优点

    这是通用解决方案。您不必设置链接的宽度和高度 - 就像background-image 方式一样。

    减号

    您不能像使用background-size 等那样更改图像的大小,但如果您的图像是您想要的确切大小,问题就解决了。

    a:before {
      content:url(http://i.stack.imgur.com/upUcm.jpg); 
    }
    
    a:hover:before {
      content:url(http://i.stack.imgur.com/sn2Ag.jpg);
    }
    &lt;a href="#"&gt;&lt;/a&gt;

    【讨论】:

    • 非常好的建议使用伪元素来包含图像
    • 我尝试了您的 css 代码,但图像不可见。我可能做错了什么。你能用完整的代码更新答案吗?
    • 使用的是哪个浏览器?如果您创建工作 sn-p 我会为您修复它。
    • 感谢支持
    【解决方案4】:

    这不起作用的原因是 img 标签和 background-image 是两个不同的东西。如果您想让它起作用,您可以尝试将背景图像放在 a 上,然后在悬停时更改它。由于特殊性规则,它需要很重要。另一种选择是将 php 放入您的 css 文件中,但这可能不值得设置。

    CSS
    .a1:hover {
    background-image: url('images/G+1.png') !important;
    }
    
    HTML
    <a class="a1" style="background-image: url('<?php echo $this->getSkinUrl('images/G+.png') ?>');"></a>
    

    【讨论】:

    • 谢谢,我试过这样,但没有为我工作:&lt;div&gt; &lt;a style="background-image: url('&lt;?php echo $this-&gt;getSkinUrl('images/G+.png') ?&gt;');" class="a1" href="javascript:popWin('https://plus.google.com/share?url=&lt;?php echo urlencode($productUrl); ?&gt;', 'google', 'width=640,height=480,left=0,top=0,location=no,status=yes,scrollbars=yes,resizable=yes');" title="&lt;?php echo $this-&gt;__('Share on Google Plus') ?&gt;"&gt; &lt;/a&gt; &lt;/div&gt;
    • 感谢支持
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-11-15
    • 1970-01-01
    • 1970-01-01
    • 2017-09-06
    • 1970-01-01
    • 2014-05-13
    • 1970-01-01
    相关资源
    最近更新 更多