javascript中增强的Marquee标记。我怎样才能让它更顺畅?

时间:2011-04-19 09:51:16

标签: javascript jquery

我已经读过<marquee>标签要在html5中返回...但是,我需要一个可以在IE6中运行的解决方案......所以说的是,我给了自己的简要说明使用符合标准的代码重新实现Marquee标记,并对其进行增强,以便文本不断循环。

我对javascript的了解非常基础,所以我把它作为一种自学手段。

我的第一次尝试使用了jQuery的动画功能...它非常流畅,但导致CPU出现峰值,页面上的任何其他脚本运行得非常慢。

所以我的第二次尝试是基于http://jqueryfordesigners.com/fun-with-overflows/但是,我抱怨说我的新实施不够顺利......

http://darren.primarysite.net/marqueeTest/

我花了几个星期的时间在我的业余时间进出,试图改进它。但是,我很难过。有谁知道如何让这更顺畅/更快等?

我已将代码放入pastebin中 - 因此很容易查看。

http://pastebin.ca/2048170

并在脑海中......

<script type="text/javascript">
$(document).ready(function() {
$('#marQueeContainer').marQuee({gap: 5});  
$('#marQueeContainer1').marQuee(); 
});
</script>

以及身体中的以下......

<div id="marQueeContainer">An Example with a 5px text gap...</div>

<div id="marQueeContainer1">An example with defaults...</div>

谢谢,

罗布

2 个答案:

答案 0 :(得分:0)

尝试更改scrollLeft的增量大小并降低setInterval延迟 - 当我在jsfiddle中测试它时,似乎更顺畅。还尝试尽可能缓存值。

答案 1 :(得分:0)

我会用这样的东西:

var line = "     My line  ";

function marque() {
    $("#line").val(line);
    line=line.substring(1, line.length) + line.substring(0, 1);
    setTimeout(marque, 200);
}
marque();

HTML

<input id="line" value="" />