js 實現無縫滾動 兼容IE和FF
2024-05-06 14:14:50
供稿:網友
原理解析:
1、首先給容器設定高度或寬度,比如ul,設置ul高40px;overflow:hidden;
2、容器高度設定后,內容的高度超出40px,超過部分溢出,被隱藏,scrollTop屬性可用,這一點可以用overflow:scroll來看效果;
3、改變容器的scrollTop(上下滾動)屬性的值,讓內容上下移動一個節點的位置(滾動的原理);
4、到滾動的高度scrollTop大于或等于要滾動節點的高度時,設置scrollTop=0,并把把子節點樹中的第一個移動到最后,重新開始滾動,無間斷循環滾動效果就出現了。
html 源碼
代碼如下:
<!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">
<head>
<title>滾動</title>
<script type="text/javascript" src="divCycle.js" src="divCycle.js"></script>
<style><!--
li{ height:20px; mar}
--></style><style bogus="1">li{ height:20px; mar}</style>
</head>
<body>
<div>
<ul id="list" style="border:1px #ccc solid; overflow:hidden; height:40px; width:100px; margin:0; padding:0; list-style-type:none;">
<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>
</ul>
</div>
<script type="text/javascript"><!--
new simpleScroll("list",20,40,1);
// --></script>
</body>
</html>
js源碼
代碼如下:
// JavaScript Document
/*****
@author leaves chen (leaves615@gmail.com)
@copyright 2009
*****/
var pause=false;
var scrollTimeId=null;
var container=null;
var lineHeight=null;
var speed=0;
var delay=0;
simpleScroll=function(container1,lineHeight1,speed1,delay1){
container=document.getElementById(container1);
lineHeight=lineHeight1;
speed=speed1;
delay=delay1;
//滾動效果
scrollexc=function(){
if(pause) return ;
container.scrollTop+=2;
var lh=lineHeight||container.getElementsByTagName('li')[0].offsetHeight;
if(container.scrollTop%lh<=1){
clearInterval(scrollTimeId);
fire();
container.scrollTop=0;