IT

div可实现类似滚动公告栏的效果。本例学习如何使用JavaScript,实现这种文本的滚动效果。

软件开发网 www.mscto.com

 

【实现代码】

 

 

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />

<title>如何实现div内自动滚动?</title>

 

 

<style type="text/css">

 

#scrollMsg{width:500px;height:235px;background-color:#feeff7;overflow:scroll; overflow-x:hidden;text-overflow:ellipsis;word-break:break-all;}

 

 

#scrollMsg span{margin:6px;display:block;}

 

 

#scrollMsg span a{color:#f60;text-decoration:underline;margin:0 4px;}

 

#scrollMsg span a:hover{color:#f20;}

#scrollMsg span label{color:#c70060;margin:0 4px;}

</style>

软件开发网 www.mscto.com

 

<script type="text/javascript">

 

function getEid(id){

 

 

    return document.getElementById(id);               //获取指定的div元素

}

软件开发网 www.mscto.com

 

function newNode(param){

    return document.createElement(param);             //创建元素

 

 

}

 

 

function newTextNode(param){

    return document.createTextNode(param);           //创建元素内容

}

function scrollDiv(){ 软件开发网 www.mscto.com

    var dest=getEid("scrollMsg");                   //获取要显示滚动内容的div

软件开发网 www.mscto.com

 

    var newStr=newTextNode(new Date().toLocaleString()+":知识改变命运,科技推动发展!");                                                       //显示的滚动信息

    var span=newNode("span");                            //创建span元素

    span.appendChild(newStr);                            //在sapn中添加显示信息

    dest.appendChild(span);                              //将span添加到div中

 

    scrollMsg.scrollTop+=10000;                     //滚动

    setTimeout("scrollDiv()",2000);                  //设置定时器定时滚动

}

window.onload=scrollDiv;

</script> 软件开发网 www.mscto.com

</head>

<body>

 

<div id="scrollMsg"></div>

</body>

</html> 软件开发网 www.mscto.com

【运行效果】

 

div的自动滚动效果如图5-3所示。

软件开发网 www.mscto.com

 

【难点剖析】

本例的重点是动态创建元素。动态创建元素需要使用JavaScript的DOM对象,其可以实现元素的添加、删除、修改等功能。本例中,使用“createElement”方法创建了一个span元素,然后使用“createTextNode”方法为span元素指定文本内容,最后将span元素添加到要滚动的div中。

 

图5-3  div自动滚动的效果

 

 

 

 

 

 

 

<script language="JavaScript">
function click() {
if (event.button==2) {
 if(document.all.auto.status==true){document.all.auto.status=false;alert("自动滚屏已经停止了!")}
 scroller();
 }
}
document.onmousedown=click

var position = 0;
function scroller() {
if (document.all.auto.status==true){
 position++;
 scroll(0,position);
 clearTimeout(timer);
 var timer = setTimeout("scroller()",50);
 timer;
 }
else{
 clearTimeout(timer);
 }
}
</script>

<script language="JavaScript">
<!--
function MM_callJS(jsStr) { //v2.0
  return eval(jsStr)
}
//-->
</script>
<div align="right">
        <input type="checkbox" name="auto" value="on" onClick="MM_callJS('scroller() ; ')" >
        自动滚屏(右键暂停)</div>

posted on 2008-07-31 18:17  liufei  阅读(2236)  评论(0编辑  收藏  举报