由于最近网站需要使用文字翻滚的效果,因为marquee不是w3c标准标签,并且滚动时会出现一段时间的空白,因此使用下面的javascript脚本实现翻滚效果。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>demo6</title>
<style type="text/css">
ul,li{margin:0;padding:0;font-size:12px;color:#999;}
ul{height:100px;overflow:hidden;}
ul li{line-height:20px;height:20px;}
</style>
</head>
<body>
<ul id="list">
<li>“卧槽泥马”:又一网络新词1</li>
<li>“卧槽泥马”:又一网络新词2</li>
<li>“卧槽泥马”:又一网络新词3</li>
<li>“卧槽泥马”:又一网络新词4</li>
<li>“卧槽泥马”:又一网络新词5</li>
<li>“卧槽泥马”:又一网络新词6</li>
<li>“卧槽泥马”:又一网络新词7</li>
<li>“卧槽泥马”:又一网络新词8</li>
<li>“卧槽泥马”:又一网络新词9</li>
<li>“卧槽泥马”:又一网络新词10</li>
<li>“卧槽泥马”:又一网络新词11</li>
<li>“卧槽泥马”:又一网络新词12</li>
<li>“卧槽泥马”:又一网络新词13</li>
<li>“卧槽泥马”:又一网络新词14</li>
</ul>
<script type="text/javascript">
function scroll(element, delay, speed, lineHeight) {
var numpergroup = 5;
var slideBox = (typeof element == 'string')?document.getElementById(element):element;
var delay = delay||1000;
var speed=speed||20;
var lineHeight = lineHeight||20;
var tid = null, pause = false;
var liLength = slideBox.getElementsByTagName('li').length;
var lack = numpergroup-liLength%numpergroup;
for(i=0;i<lack;i++){
slideBox.appendChild(document.createElement("li"));
}
var start = function() {
tid=setInterval(slide, speed);
}
var slide = function() {
if (pause) return;
slideBox.scrollTop += 2;
if ( slideBox.scrollTop % lineHeight == 0 ) {
clearInterval(tid);
for(i=0;i<numpergroup;i++){
slideBox.appendChild(slideBox.getElementsByTagName('li')[0]);
}
slideBox.scrollTop = 0;
setTimeout(start, delay);
}
}
slideBox.onmouseover=function(){pause=true;}
slideBox.onmouseout=function(){pause=false;}
setTimeout(start, delay);
}
scroll('list', 5000, 1, 20 );//停留时间,相对速度(越小越快),每次滚动多少,最好和Li的Line-height一致。
</script>
</body>
</html>