修复Google Chrome上的蓝线

时间:2012-03-12 20:25:09

标签: javascript jquery google-chrome animation

我有以下HTML:

<div id="a"><div id="b">aga ad gdas ga gs ds da dgs sd ds dg gdgsdgwa</div></div>

和CSS:

#a, #b {
    position: absolute; 
    height: 10px;
    font-size: 10px;   
    white-space:nowrap;
    display: block;
}
#a {
    width: 200px;   
    overflow: hidden;
}

和Javascript:

var x = 0;

setInterval(function() {
    if ($('#b').position().left < (-$('#b').width())) {
        x = 305;
    }
    $('#b').css('left', (x--) + 'px')
}, 50);

在Firefox和Internet Explorer中运行良好,但在Google Chrome 17上,它在句子末尾显示一条蓝线。 See live jsfiddle demo

Blue line on Google Chrome

我该如何解决?

3 个答案:

答案 0 :(得分:8)

我很确定这是一个字体重绘/渲染故障。我在Java中看到过它。它可能与你的JS和CSS没什么关系(幸运的是,不幸的是)。

诀窍是强制它重绘条纹的位置。幸运的是,在这种情况下很容易解决:只需将padding-right:1px;添加到#b元素。


编辑:您可能需要考虑将此错误提交给Google / Apple(因为Chrome和Safari都会出现此问题)。

答案 1 :(得分:6)

有趣的是,BG颜色越浅,错误的蓝线就越亮。 Font-smoothing没有修复它。

1px padding-right修正了它(我添加了-1px margin-right来补偿)。

http://jsfiddle.net/MqQG3/1/

答案 2 :(得分:1)

我遇到了类似的问题,并使用Math.floor()解决了我的宽度,高度和背景大小属性......