【发布时间】:2013-01-24 01:59:13
【问题描述】:
我有这段代码,它在 mouseenter 上将一些图标淡化为不透明度 1.0,在 mouseleave 上淡化为 0.3。它工作得很好,除了我在不同的响应视图中将这些图标设置为不透明度 0.13,但下面的代码仍然在鼠标移出时将它们淡化回 0.3 而不是 0.13,这不是我想要的。
$(".social-holder img").on("hover", function(e) {
if(e.type == "mouseenter") {
$(this).fadeTo('fast', 1.0);
}
else if (e.type == "mouseleave") {
$(this).fadeTo('fast', 0.3);
}
});
我尝试了下面的代码,但我不明白为什么它不起作用。它在 mouseleave 上将图标保留为 1.0
$(".social-holder img").on("hover", function(e) {
var currentOpacity = $(this).css('opacity');
if(e.type == "mouseenter") {
$(this).fadeTo('fast', 1.0);
}
else if (e.type == "mouseleave") {
$(this).fadeTo('fast', currentOpacity);
}
});
顺便说一句,var currentOpacity 似乎工作正常,正如我使用控制台检查的那样,但它似乎没有进入 else if 语句。也许我对范围或其他东西有一些误解。
【问题讨论】:
-
您是否尝试添加一些
console.log消息以查看这些事件何时触发?您的mouseleave和mouseenter动画可能彼此重叠和/或您的其他动画重叠。 -
是的,我几乎到处都试过了,但我仍然看不到问题