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
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.οnlοad=scrollDiv;
</script> 软件开发网 www.mscto.com
</head>
<body>
<div id="scrollMsg"></div>
</body>
</html> 软件开发网 www.mscto.com
【运行效果】
div的自动滚动效果如图5-3所示。
【难点剖析】
本例的重点是动态创建元素。动态创建元素需要使用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.οnmοusedοwn=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>