js 實(shí)現(xiàn)無縫滾動(dòng) 兼容IE和FF
更新時(shí)間:2009年07月15日 00:26:27 作者:
js 實(shí)現(xiàn)無縫滾動(dòng) 兼容IE FF,大家可以看看。
原理解析:
1、首先給容器設(shè)定高度或?qū)挾龋热鐄l,設(shè)置ul高40px;overflow:hidden;
2、容器高度設(shè)定后,內(nèi)容的高度超出40px,超過部分溢出,被隱藏,scrollTop屬性可用,這一點(diǎn)可以用overflow:scroll來看效果;
3、改變?nèi)萜鞯膕crollTop(上下滾動(dòng))屬性的值,讓內(nèi)容上下移動(dòng)一個(gè)節(jié)點(diǎn)的位置(滾動(dòng)的原理);
4、到滾動(dòng)的高度scrollTop大于或等于要滾動(dòng)節(jié)點(diǎn)的高度時(shí),設(shè)置scrollTop=0,并把把子節(jié)點(diǎn)樹中的第一個(gè)移動(dòng)到最后,重新開始滾動(dòng),無間斷循環(huán)滾動(dòng)效果就出現(xiàn)了。
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>滾動(dòng)</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;
//滾動(dòng)效果
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;
setTimeout(start,delay*1000);
}
};
//開始滾動(dòng)
start=function(){
var lh=lineHeight||container.getElementsByTagName('li')[0].offsetHeight;
if (container.scrollHeight - container.offsetHeight >= lh)
scrollTimeId = setInterval(scrollexc, speed);
};
//把子節(jié)點(diǎn)樹中的第一個(gè)移動(dòng)到最后
fire=function(){
container.appendChild(container.getElementsByTagName('li')[0]);
};
container.onmouseover=function(){pause=true;};
container.onmouseout=function(){pause=false;};
setTimeout(start,delay*1000);
};
1、首先給容器設(shè)定高度或?qū)挾龋热鐄l,設(shè)置ul高40px;overflow:hidden;
2、容器高度設(shè)定后,內(nèi)容的高度超出40px,超過部分溢出,被隱藏,scrollTop屬性可用,這一點(diǎn)可以用overflow:scroll來看效果;
3、改變?nèi)萜鞯膕crollTop(上下滾動(dòng))屬性的值,讓內(nèi)容上下移動(dòng)一個(gè)節(jié)點(diǎn)的位置(滾動(dòng)的原理);
4、到滾動(dòng)的高度scrollTop大于或等于要滾動(dòng)節(jié)點(diǎn)的高度時(shí),設(shè)置scrollTop=0,并把把子節(jié)點(diǎn)樹中的第一個(gè)移動(dòng)到最后,重新開始滾動(dòng),無間斷循環(huán)滾動(dòng)效果就出現(xiàn)了。
html 源碼
復(fù)制代碼 代碼如下:
<!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>滾動(dòng)</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源碼
復(fù)制代碼 代碼如下:
// 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;
//滾動(dòng)效果
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;
setTimeout(start,delay*1000);
}
};
//開始滾動(dòng)
start=function(){
var lh=lineHeight||container.getElementsByTagName('li')[0].offsetHeight;
if (container.scrollHeight - container.offsetHeight >= lh)
scrollTimeId = setInterval(scrollexc, speed);
};
//把子節(jié)點(diǎn)樹中的第一個(gè)移動(dòng)到最后
fire=function(){
container.appendChild(container.getElementsByTagName('li')[0]);
};
container.onmouseover=function(){pause=true;};
container.onmouseout=function(){pause=false;};
setTimeout(start,delay*1000);
};
您可能感興趣的文章:
- js實(shí)現(xiàn)圖片無縫滾動(dòng)特效
- 徹底搞懂JS無縫滾動(dòng)代碼
- div+css+js實(shí)現(xiàn)無縫滾動(dòng)類似marquee無縫滾動(dòng)兼容firefox
- js向上無縫滾動(dòng),網(wǎng)站公告效果 具體代碼
- jcarousellite.js 基于Jquery的圖片無縫滾動(dòng)插件
- javascript實(shí)現(xiàn)的左右無縫滾動(dòng)效果
- js實(shí)現(xiàn)可控制左右方向的無縫滾動(dòng)效果
- js實(shí)現(xiàn)文字列表無縫滾動(dòng)效果
- JQuery插件Marquee.js實(shí)現(xiàn)無縫滾動(dòng)效果
- JavaScript定時(shí)器實(shí)現(xiàn)無縫滾動(dòng)圖片
相關(guān)文章
JS實(shí)現(xiàn)數(shù)組扁平化的方法分享
數(shù)組扁平化指的是:將一個(gè)多層嵌套的數(shù)組,處理成只有一層的數(shù)組。本文主要和大家介紹了幾個(gè)常用的JS數(shù)組扁平化方法,希望對(duì)大家有所幫助2023-04-04實(shí)現(xiàn)表格中行點(diǎn)擊時(shí)的漸擴(kuò)效果!
實(shí)現(xiàn)表格中行點(diǎn)擊時(shí)的漸擴(kuò)效果!...2006-12-12js函數(shù)參數(shù)設(shè)置默認(rèn)值的一種變通實(shí)現(xiàn)方法
js函數(shù)中有個(gè)儲(chǔ)存參數(shù)的數(shù)組arguments,因此js版支持參數(shù)默認(rèn)值的函數(shù)可以通過另外一種變通的方法實(shí)現(xiàn)2014-05-05JS實(shí)現(xiàn)帶圓弧背景漸變效果的導(dǎo)航菜單代碼
這篇文章主要介紹了JS實(shí)現(xiàn)帶圓弧背景漸變效果的導(dǎo)航菜單代碼,涉及JavaScript基于鼠標(biāo)事件操作頁(yè)面元素屬性的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-10-10JS實(shí)現(xiàn)表單多文件上傳樣式美化支持選中文件后刪除相關(guān)項(xiàng)
在項(xiàng)目開發(fā)中我們經(jīng)常遇到文件上傳的功能,根據(jù)需求有多文件上傳和單文件上傳,今天小編給大家實(shí)例講解下表單多文件上傳樣式美化支持選中文件后刪除相關(guān)項(xiàng),非常不錯(cuò),感興趣的朋友一起看看吧2016-09-09js實(shí)現(xiàn)匹配時(shí)換色的輸入提示特效代碼
這篇文章主要介紹了js實(shí)現(xiàn)匹配時(shí)換色的輸入提示特效代碼,涉及javascript針對(duì)頁(yè)面元素的匹配及鼠標(biāo)事件的相關(guān)使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-08-08