我要加入 登录
声振论坛 返回首页

aspen的个人空间 http://home.vibunion.com/?10 [收藏] [复制] [分享] [RSS]

日志

JS实现marquee效果(转)

已有 876 次阅读2008-3-23 21:53 |个人分类:网站建设

来自:http://www.cnblogs.com/webwei/archive/2006/11/11/557755.html

1.test.html
<html>

<body>

<div id="news1">滚动部分文字</div>
<div id="news2"></div>

<script type="text/javascript" src="ShowMarquee.js"></script>
</body>
</html>

2.ShowMarquee.js
// JavaScript Document
h1=document.getElementById("news1");
h2
=document.getElementById("news2");
stopscroll
=false;
h1.scrollTop
=0;

h1.onmouseover
=new Function("stopscroll=true");
h1.onmouseout
=new Function("stopscroll=false");


preTop
=0;

function init_srolltext(){
h2.innerHTML
=h1.innerHTML; 
h1.innerHTML
=h2.innerHTML+h2.innerHTML;
h1.scrollTop
=0;
setInterval(
"scrollUp()",50);
}
function scrollUp(){
if(stopscroll==truereturn;
     preTop
=h1.scrollTop;
     h1.scrollTop
+=1;
if(preTop==h1.scrollTop){
     h1.scrollTop
=h1.scrollTop-h2.offsetHeight;
     h1.scrollTop
+=1;
}
}
init_srolltext();
3.Css样式中,将"news2"的display设置为"none","news1"中是需要滚动的文本;另外news1和news2俩个div的样式要完全相同,否则它们的offsetHeight会不同,向上滚动时会出现“跳行”的效果。
4. 道理其实并不复杂(news2也并没有什么用处,可以改动一下,只用一个div实现):计算出div内文本的高度(Apx);将文本copy成上下连接的 两份,高度为(2Apx);每周期向上移动1px;如果移动到2A的底部,则向下移动一个文本高度(Apx),继续向上滚动1px;这样的视觉效果是文本 一直在向上移动。向不同方向的移动也可以类似实现。

评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 我要加入

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-5-19 22:53 , Processed in 0.042112 second(s), 16 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部