本文介绍了两种实现文字首尾相连循环滚动的方法。第一种利用HTML5的marquee标签,代码简洁但仅支持IE浏览器;第二种通过div结合JavaScript脚本实现,兼容Firefox等现代浏览器。核心逻辑在于动态复制内容并重置滚动条位置,确保视觉上的无缝循环。
代码如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<HTML xmlns="http://www.w3.org/1999/xhtml">
<HEAD>
<TITLE>分别用marquee和div+js实现首尾相连循环滚动效果</TITLE>
</HEAD>
<BODY>
marquee实现方案利用marquee标签实现首尾相连的循环滚动效果(该方案仅适用于IE浏览器):<br /><br />
<MARQUEE behavior="scroll" contenteditable="true" onstart="this.firstChild.innerHTML+=this.firstChild.innerHTML;" scrollamount="3" width="100"><SPAN unselectable="on">这里是要滚动的内容</SPAN></MARQUEE>
div+js实现方案<br /><br />使用DIV结合JavaScript实现首尾相连的循环滚动效果(兼容Firefox等浏览器):<br /><br />
<DIV id="scrollobj" style="white-space:nowrap;overflow:hidden;width:500px;"><span>这里是要滚动的内容</span></DIV>
<script language="javascript" type="text/javascript">
<!--
function scroll(obj) {
var tmp = (obj.scrollLeft)++;
//当滚动条到达右边顶端时
if (obj.scrollLeft==tmp) obj.innerHTML += obj.innerHTML;
//当滚动条滚动了初始内容的宽度时滚动条回到最左端
if (obj.scrollLeft>=obj.firstChild.offsetWidth) obj.scrollLeft=0;
}
setInterval("scroll(document.getElementById('scrollobj'))",20);
//-->
</script>
</BODY>
</HTML>