scrollLeftに関する問題(js横シームレススクロール)

1621 ワード

<div id="demo">
	<div id="innerdemo">
		<div id="demo1">
			<img src="images/0.jpg" />
			<img src="images/1.jpg" />
			<img src="images/2.jpg" />
			<img src="images/3.jpg" />
			<img src="images/4.jpg" />
			<img src="images/5.jpg" />
		</div>
		<div id="demo2"></div>
	</div>
</div>
#demo{ width:600px; height:200px; border:1px solid #CCC; margin:20px auto; overflow:hidden;}
#innerdemo{ width:800%; }
#demo1,#demo2{float:left;}
function crossMarquee(){
	var speed=10;
	var oDemo=document.getElementById("demo");
	var oinnerDemo=document.getElementById("innerdemo");
	var oDemo1=document.getElementById("demo1");
	var oDemo2=document.getElementById("demo2");
	oDemo2.innerHTML=oDemo1.innerHTML;
	function Marquee(){
		if(oDemo1.offsetWidth<=oDemo.scrollLeft){
			oDemo.scrollLeft-=oDemo1.offsetWidth;
		}else{
			oDemo.scrollLeft++;
		}
	}
	var myMar=setInterval(Marquee,speed);
	oDemo.onmouseover=function(){clearInterval(myMar);}
	oDemo.onmouseout=function(){myMar=setInterval(Marquee,speed);}
}
window.onload=function(){
	crossMarquee()

};

これは簡単なjsシームレスなスクロールコードで、注意すべき点があります.
1、scrollLeftは最外層容器で実行しなければならない
2、scrollLeftは単位pxを加える必要がない