jQuery .css(“不透明度”,“+ = 0.1”)表现得很奇怪

时间:2014-07-04 12:29:40

标签: javascript jquery css

我做了这个小小的'蚀刻了一个'类型的东西,我希望每次触发mouseenter事件时,不透明度增加一点到完全不透明度。 我把一切都搞定了,但对于我的生活,我无法弄清楚为什么不透明度一直到1。

$(document).on("mouseenter", "td", function () {
    $(this).css("background","black").css({
        opacity: function (index, value) {
            return parseFloat(value) + 0.1;
        }
    }); 
});

CSS:

td, tr {       
    opacity:0.5;
    width:auto;
    height:auto;
}

如果我将css设置为1,则mouseenter事件会使其完全变黑。如果它是0.5,则mouseenter从0.5开始并进入' 1'在debugg中,但实际上它看起来像0.7。 如果我在CSS中删除.css("background","black")和/或添加background:black;。代码没有做任何事情。

Link to the full code

2 个答案:

答案 0 :(得分:1)

那是因为你在tr上设置了50%的不透明度,所以即使td上的不透明度为100%,它也会被行淡化。只需拆分CSS:

td,tr {

    width:auto;
    height:auto;
}
td{
    opacity : 0
}

小提琴:http://jsfiddle.net/hSgh8/5/

答案 1 :(得分:0)

您只是更新了td的不透明度,所以当它完全不透明时,包含它的tr仍然是50%的不透明度,因此整个事情是50%< / p>