张冬生的网络日志

记录,转载,分享
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

公告定时向上滚动效果

Posted on 2011-08-13 23:30  张冬生  阅读(481)  评论(1编辑  收藏  举报

<!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>无标题页</title>
</head>
<body>
<div style="width: 400px; height: 23px; overflow: hidden; background-color: red;">
    <div style="white-space:nowrap;" onmouseover="javascript:isMove=false" onmouseout="javascript:isMove=true">
        <ul id="noticev2">
            <li><a target="_blank" href="http://www.baofeng.com">1111111111111111111111</a></li>
            <li><a target="_blank" href="http://www.baofeng.com">2222222222222222222222</a></li>
            <li><a target="_blank" href="http://www.baofeng.com">3333333333333333333333</a></li>
            <li><a target="_blank" href="http://www.baofeng.com">1111111111111111111111</a></li>
        </ul>
    </div>
</div>
<div id="sss"></div>
<div id="aaa"></div>
<div id="bbb"></div>
<div id="ccc"></div>
<div id="ddd"></div>
<div id="nnn"></div>
<script>
var tID;
var tn;                        // 高度
var nStopTime = 2000;        // 不同行间滚动时间隔的时间,值越小,移动越快
var nSpeed = 50;            // 滚动时,向上移动一像素间隔的时间,值越小,移动越快
var isMove = true;
var nHeight = 20;
var nS = 0;
var nNewsCount = 3;

/**
 * n 用于表示是否为第一次运行
 **/
function moveT(n)
{
    clearTimeout(tID)
    var noticev2 = document.getElementById("noticev2")
    nS = nSpeed;
   
    // 只在第一次调用时运行,初始化环境(有没有参数)
    if (n)
    {
        // 设置行高
        noticev2.style.lineHeight = nHeight + "px";
        // 初始化显示位置
        tn = 0;
        // 刚进入时在第一行停止时间
        nS = nStopTime;
    }
   
    // 判断鼠标是否指向层
    if (isMove)
    {
        // 向上移动一像素
        tn--;
        // 如果移动到最下面一行了,则移到顶行
        if (Math.abs(tn) == nNewsCount * nHeight)
        {
            tn = 0;
        }
        // 设置位置
        noticev2.style.marginTop = tn + "px";
        // 完整显示一行时,停止一段时间
        if (tn % nHeight == 0)
        {
            nS = nStopTime;
        }
    }

    tID = setTimeout("moveT()", nS);
}
moveT(1);    // 此处可以传入任何参数
</script>

</body>
</html>