marquee怎么把显示完了的一段空白去掉啊?想连续循环显示.

如题所述

第1个回答  2022-10-22
分类: 电脑/网络 >> 程序设计 >> 其他编程语言
解析:

给你一段代码:

<div id="marquees"> <!-- 这些是字幕的内容,你可以任意定义 --> <a href="#">链接1</a>

<br> <a href="#">链接2</a>

<br> <a href="#">链接3</a>

<br> <a href="#">链接4</a>

<br> <!-- 字幕内容结束 -->

</div>

<!-- 以下是javascript代码 -->

<script language="javascript">

<!--

marqueesHeight=200; 内容区高度

stopscroll=false; 这个变量控制是否停止滚动

with(marquees){

noWrap=true; 这句表内容区不自动换行

style.width=0; 于是我们可以将它的宽度设为0,因为它会被撑大

style.height=marqueesHeight;

style.overflowY="hidden"; 滚动条不可见

onmouseover=new Function("stopscroll=true"); 鼠标经过,停止滚动

onmouseout=new Function("stopscroll=false"); 鼠标离开,开始滚动

}

这时候,内容区的高度是无法读取了。下面输出一个不可见的层"templayer",稍后将内容复制到里面:

document.write('<div id="templayer" class="page_speeder_1797813464"></div>');

function init(){ 初始化滚动内容

多次复制原内容到"templayer",直到"templayer"的高度大于内容区高度:

while(templayer.offsetHeight<marqueesHeight){

templayer.innerHTML+=marquees.innerHTML;

} 把"templayer"的内容的“两倍”复制回原内容区:

marquees.innerHTML=templayer.innerHTML+templayer.innerHTML;

设置连续超时,调用"scrollUp()"函数驱动滚动条:

setInterval("scrollUp()",20);

}

document.body.onload=init;

preTop=0; 这个变量用于判断滚动条是否已经到了尽头

function scrollUp(){ 滚动条的驱动函数

if(stopscroll==true) return; 如果变量"stopscroll"为真,则停止滚动

preTop=marquees.scrollTop; 记录滚动前的滚动条位置

marquees.scrollTop+=1; 滚动条向下移动一个像素

如果滚动条不动了,则向上滚动到和当前画面一样的位置

当然不仅如此,同样还要向下滚动一个像素(+1):

if(preTop==marquees.scrollTop){

marquees.scrollTop=templayer.offsetHeight-marqueesHeight+1;

}

}

-->

</script>

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网