无法将不透明度设置为特定值的动画

时间:2011-09-14 20:42:19

标签: jquery jquery-animate opacity

我正在尝试使用Humanized Messages jQuery插件,我遇到了一些问题。即使我移动鼠标/最后的超时会激活,消息也不会淡出。我认为这与编码风格/最新版本的jQuery有关。我将插件重写为我自己的编码风格并检查了jQuery文档 - 一切都符合要求。

问题,我发现,这段代码(humanMsg.msgOpacity0.8)将不透明度设为“0.800000011920929”,而不仅仅是“0.8”:

jQuery('#'+humanMsg.msgID).show().animate({ opacity: humanMsg.msgOpacity}, 200, function(){
    jQuery('#'+humanMsg.logID).show().children('ul').prepend('<li>'+msg+'</li>').children('li:first').slideDown(200);

    if (jQuery('#'+humanMsg.logID+' ul').css('display') == 'none')
    {
        jQuery('#'+humanMsg.logID+' p').animate({ bottom: 40 }, 200, 'linear', function(){
            jQuery(this).animate({ bottom: 0 }, 300, 'easeOutBounce', function() { jQuery(this).css({ bottom: 0 }) });
        });
    }
});

为什么会发生这种情况,我该如何预防呢?我正在运行Chrome 13.0.782.220。

1 个答案:

答案 0 :(得分:0)

我决定欺骗这个:

if (jQuery('#'+humanMsg.msgID).css('opacity') >= (humanMsg.msgOpacity - 0.05))
{
    jQuery('#'+humanMsg.msgID).animate({ opacity: 0 }, 500, function() { jQuery(this).hide() });
}