<!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>
<style type="text/css">
ul,li{margin:0;padding:0;list-style:none;}
#tab {background: #FFF;overflow:hidden;border: 1px dashed #CCC;width: 500px;}
.tab_div{float: left;width: 2000px;}
#tab1,#tab2{float: left;}
#tab1 li,#tab2 li{float:left;margin-right:20px;}
</style>
</head>
<body>
向左滚动
<div id="tab">
<div class="tab_div">
<ul id="tab1">
<li>111111111111111111</li>
<li>22222222222222222222222222222</li>
<li>333</li>
<li>44</li>
</ul>
<ul id="tab2"></ul>
</div>
</div>
<script type="text/javascript">
<!--
var $d = document;
function $i(s){return $d.getElementById(s);}
var speed=30; //数字越大速度越慢
var tab=$i("tab");
var tab1=$i("tab1");
var tab2=$i("tab2");
tab2.innerHTML=tab1.innerHTML;
function Marquee(){
if(tab2.offsetWidth-tab.scrollLeft<=0)
tab.scrollLeft-=tab1.offsetWidth;
else{
tab.scrollLeft++;
}
}
var MyMar=setInterval(Marquee,speed);
tab.onmouseover=function() {clearInterval(MyMar)};
tab.onmouseout=function() {MyMar=setInterval(Marquee,speed)};
-->
</script>
</body>
</html>
红色部分是重点滚动代码,可改为上下左右无缝滚动:
———————–向上滚动——————————-
function Marquee(){
if(tab2.offsetTop-tab.scrollTop<=0)
tab.scrollTop-=tab1.offsetHeight;
else{
tab.scrollTop++;
}
}
———————–向下滚动——————————-
tab.scrollTop=tab.scrollHeight;
function Marquee(){
if(tab1.offsetTop-tab.scrollTop>=0)
tab.scrollTop+=tab2.offsetHeight;
else{
tab.scrollTop--
}
}
———————–向左滚动——————————-
function Marquee(){
if(tab2.offsetWidth-tab.scrollLeft<=0)
tab.scrollLeft-=tab1.offsetWidth;
else{
tab.scrollLeft++
}
}
———————–向右滚动——————————-
tab.scrollLeft=tab.scrollWidth;
function Marquee(){
if(tab.scrollLeft<=0)
tab.scrollLeft+=tab2.offsetWidth;
else{
tab.scrollLeft--
}
}
———————————————————
有一点要注意的是,在实现应用中得算好高度或宽度,不然会出现滚动两次后停止的问题。