//这是dom结构dom
<div id="demo"><div id="demo1">这里是你要添加的数据(有浮动记得清楚浮动,否则没高度)</div><div id="demo2"></div></div>seo
//代码网上能够搜到,原理是建立一个demo2 的div就,把demo1 的内容复制到demo2的里面。定时器来增长demo的滚动高度。当滚动到最底下时让demo的滚动高度从新赋值。判断demo2距离父级顶部的高度与demo的滚动高度差值(不循环滚动从新计算);ip
<script>io
// 判断当前数据是否超过显示区域,超过则滚动,不然不滚动
var flag = true;
if(demo1.offsetHeight <= demo.offsetHeight) {
flag = false;
} else {
flag = true;
}
if(flag) {
var speed = 10 //滚动速度,越小越快
var cliH = demo1.offsetHeight
demo2.innerHTML = demo1.innerHTML
var num = demo2.offsetTop - cliH; // 这个本来是想实现上面的判断,可是有bug。只有一条数据时会显示两条。做用是用来计算demo2的距离顶部的高度与demo的滚动高度的差,用于下面的判断。
function Marquee() {
if(demo2.offsetTop - demo.scrollTop <= num)
demo.scrollTop -= demo1.offsetHeight
else {
demo.scrollTop++
}
}
var MyMar = setInterval(Marquee, speed)
demo.onmouseover = function() {
clearInterval(MyMar)
}
demo.onmouseout = function() {
MyMar = setInterval(Marquee, speed)
}
}
</script>function