【发布时间】:2016-01-10 08:53:07
【问题描述】:
情况:我有以下简单的 jQuery 代码:
$('img').each(function()
{
$(this).mouseenter(function()
{
$(this).css('opacity','1');
});
$(this).mouseleave(function()
{
$(this).css('opacity','0.4');
});
});
使用 CSS 规则:
img
{
opacity: 0.4;
transition: all 0.5s;
-webkit-transition: all 0.5s;
}
用于向图像添加简单的不透明度更改动画(悬停时):
<div class="well"><img src="" class="img-responsive" alt=""></div>
https://jsfiddle.net/k4afv6fk/1/
问题: img-responsive 类在这里似乎有点小错误 - 每次动画继续播放时,图像都会重新缩放(大约 1px)几次,然后返回到原始大小。看起来不太好。
问题: 有什么方法可以防止在动画响应 img 的对象时出现 1px 缩放?如果没有 img-responsive 类,问题不会发生,但我希望这张图片能够响应:)
@Edit :我刚刚发现,这个问题只发生在 Opera 浏览器下。有什么方法可以改进代码以在 Opera 上正常工作吗?
【问题讨论】:
-
为什么不使用:hover? Mouseenter 和 mouseleave 仍然保持 :hover 不变,除非您为此严格定义了不同的行为。更不用说,你并没有告诉它做任何事情。您不希望人们使用标签时出现不透明效果吗?
-
不是说它与解决方案有关,但你为什么要使用那个 jQuery 代码呢?看起来你根本不需要它。这是一个简单的悬停效果,可以通过 CSS 中的一行代码轻松实现。
标签: jquery css twitter-bootstrap twitter-bootstrap-3