修复Google Chrome上的蓝线

Red*_*gon 7 javascript jquery animation google-chrome

我有以下HTML:

<div id="a"><div id="b">aga ad gdas ga gs ds da dgs sd ds dg gdgsdgwa</div></div>
Run Code Online (Sandbox Code Playgroud)

和CSS:

#a, #b {
    position: absolute; 
    height: 10px;
    font-size: 10px;   
    white-space:nowrap;
    display: block;
}
#a {
    width: 200px;   
    overflow: hidden;
}
Run Code Online (Sandbox Code Playgroud)

和Javascript:

var x = 0;

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

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

Google Chrome上的蓝线

我该如何解决?

Jef*_*ney 8

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

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


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


Tim*_*ora 6

有趣的是,BG颜色越浅,错误的蓝线就越亮.字体平滑没有解决它.

1px padding-right修复它(我添加-1px margin-right来补偿).

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