0

我在停止 jQueryfadeOut效果并让它返回到 css 文件中指定的正确不透明度时遇到问题。

当鼠标进入 时.item.editingdiv 立即显示,不透明度为 90%,如 css 中所定义。现在,当鼠标在淡出期间离开并重新进入时,不透明度会停留在当前的淡出不透明度级别。看到这个 jsFiddle

我所能找到的只是你应该打电话opacity(100)后打电话stop()。请参阅此问答。问题是这对我不起作用,因为我想将它重置为 css 中定义的 90%。

任何人都知道如何做到这一点,而无需在 javascript 中硬编码正确的不透明度?

HTML

<div class="list">
    <div class="item"><div class="editing">edit</div></div>
    <div class="item"><div class="editing">edit</div></div>
    <div class="item"><div class="editing">edit</div></div>
    <div class="item"><div class="editing">edit</div></div>
</div>

CSS

.editing {
    display: none;
    opacity: 0.9;
    filter: alpha(opacity=90);
}

JavaScript

$(".item").hover(function() {
    // enter
    $(".editing", this).stop();
    $(".editing", this).show();
}, function() {
    // leave
    $(".editing", this).fadeOut(1000);
});
4

1 回答 1

1

您将要设置jumpToEnd参数,如下所示:

$(".item").hover(function() {
    // enter
    $(".editing", this).stop(true, true).show();
}, function() {
    // leave
    $(".editing", this).fadeOut(500);
});

请参阅此处以供参考:
http ://api.jquery.com/stop/#stop-clearQueue-jumpToEnd

小提琴:

http://jsfiddle.net/QShwJ/2/

于 2013-08-25T19:20:52.160 回答