乌徒帮技术范儿技术中心Javascript › javascript实现内容上下滚动、间歇性滚动的经典代码

javascript实现内容上下滚动、间歇性滚动的经典代码

分类:Javascript

今天朋友让我改一个代码,通过网络上很多资料学习,找到了最简单实现内容上下滚动或间隙性滚动的最为经典的简单的代码。

1、javascript实现内容上下滚动的经典代码

<div align="center" id="demo" style="overflow:hidden;height:200px;width:600px;border:1px solid #000;">
<div id="demo1">
<li>修改demo1里的内容,最好是用Li的方法,这样可以更规律</li>
<li>修改demo1里的内容,最好是用Li的方法,这样可以更规律</li>
<li>修改demo1里的内容,最好是用Li的方法,这样可以更规律</li>
<li>修改demo1里的内容,最好是用Li的方法,这样可以更规律</li>
<li>修改demo1里的内容,最好是用Li的方法,这样可以更规律</li>
<li>修改demo1里的内容,最好是用Li的方法,这样可以更规律</li>
<li>修改demo1里的内容,最好是用Li的方法,这样可以更规律</li>
<li>修改demo1里的内容,最好是用Li的方法,这样可以更规律</li>
<li>修改demo1里的内容,最好是用Li的方法,这样可以更规律</li>
<li>修改demo1里的内容,最好是用Li的方法,这样可以更规律</li>
<li>修改demo1里的内容,最好是用Li的方法,这样可以更规律</li>
<li>修改demo1里的内容,最好是用Li的方法,这样可以更规律</li>
<li>修改demo1里的内容,最好是用Li的方法,这样可以更规律</li>
<li>修改demo1里的内容,最好是用Li的方法,这样可以更规律</li>
<li>修改demo1里的内容,最好是用Li的方法,这样可以更规律</li>
<li>修改demo1里的内容,最好是用Li的方法,这样可以更规律</li>
<li>修改demo1里的内容,最好是用Li的方法,这样可以更规律</li>
<li>修改demo1里的内容,最好是用Li的方法,这样可以更规律</li>
<li>修改demo1里的内容,最好是用Li的方法,这样可以更规律</li>
<li>修改demo1里的内容,最好是用Li的方法,这样可以更规律</li>
<li>修改demo1里的内容,最好是用Li的方法,这样可以更规律</li>
<li>修改demo1里的内容,最好是用Li的方法,这样可以更规律</li>
</div>
<div id="demo2"></div>
</div>
<script language="javascript" type="text/javascript">
<!--
var demo = document.getElementById("demo");
var demo1 = document.getElementById("demo1");
var demo2 = document.getElementById("demo2");
var speed=20;??? //滚动速度值,值越大速度越慢
var nnn = 200/demo1.offsetHeight;
//for(i=0;i<nnn;i++){demo1.innerHTML += demo1.innerHTML}
demo2.innerHTML = demo1.innerHTML??? //克隆demo2为demo1
function Marquee(){
if(demo2.offsetTop - demo.scrollTop <= 0)??? //当滚动至demo1与demo2交界时
demo.scrollTop -= demo1.offsetHeight??? //demo跳到最顶端
else{
demo.scrollTop++
}
}
var MyMar = setInterval(Marquee,speed);??????? //设置定时器
demo.onmouseover = function(){clearInterval(MyMar)}??? //鼠标经过时清除定时器达到滚动停止的目的
demo.onmouseout = function(){MyMar = setInterval(Marquee,speed)}??? //鼠标移开时重设定时器
-->
</script>

2、javascript间隙性上下滚动的代码

<!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>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>实现间歇性滚动的JavaScript代码</title>
<script type="text/javascript">
window.onload=function(){
new Marquee(
"divg", //容器ID
0, //向上滚动(0向上 1向下 2向左 3向右)
2, //滚动的步长
900, //容器可视宽度
22, //容器可视高度
50, //定时器数值越小,滚动的速度越快(1000=1秒,建议不小于20)
4000, //间歇停顿时间(0为不停顿,1000=1秒)
1000, //开始时的等待时间(0为不等待,1000=1秒)
22 //间歇滚动间距(可选)
);
};
function Marquee(){
this.ID=document.getElementById(arguments[0]);
this.Direction=arguments[1];
this.Step=arguments[2];
this.Width=arguments[3];
this.Height=arguments[4];
this.Timer=arguments[5];
this.WaitTime=arguments[6];
this.StopTime=arguments[7];
if(arguments[8])
this.ScrollStep=arguments[8];
else
this.ScrollStep=this.Direction>1?this.Width:this.Height;
this.CTL=this.StartID=this.Stop=this.MouseOver=0;
this.ID.style.overflowX=this.ID.style.overflowY="hidden";
this.ID.noWrap=true;
this.ID.style.width=this.Width;
this.ID.style.height=this.Height;
this.ClientScroll=this.Direction>1?this.ID.scrollWidth:this.ID.scrollHeight;
this.ID.innerHTML+=this.ID.innerHTML;
this.Start(this,this.Timer,this.WaitTime,this.StopTime);
}
Marquee.prototype.Start=function(msobj,timer,waittime,stoptime){
msobj.StartID=function(){
msobj.Scroll();
}
msobj.Continue=function(){
if(msobj.MouseOver==1)
setTimeout(msobj.Continue,waittime);
else{
clearInterval(msobj.TimerID);
msobj.CTL=msobj.Stop=0;
msobj.TimerID=setInterval(msobj.StartID,timer);
}
}
msobj.Pause=function(){
msobj.Stop=1;
clearInterval(msobj.TimerID);
setTimeout(msobj.Continue,waittime);
}
msobj.Begin=function(){
msobj.TimerID=setInterval(msobj.StartID,timer);
msobj.ID.onmouseover=function(){
msobj.MouseOver=1;
clearInterval(msobj.TimerID);
}
msobj.ID.onmouseout=function(){
msobj.MouseOver=0;
if(msobj.Stop==0){
clearInterval(msobj.TimerID);
msobj.TimerID=setInterval(msobj.StartID,timer);
}
}
}
setTimeout(msobj.Begin,stoptime);
}
Marquee.prototype.Scroll=function(){
switch(this.Direction){
case 0:
this.CTL+=this.Step;
if(this.CTL>=this.ScrollStep&&this.WaitTime>0){
this.ID.scrollTop+=this.ScrollStep+this.Step-this.CTL;
this.Pause();
return;
}
else{
if(this.ID.scrollTop>=this.ClientScroll)
this.ID.scrollTop-=this.ClientScroll;
this.ID.scrollTop+=this.Step;
}
break;
case 1:
this.CTL+=this.Step;
if(this.CTL>=this.ScrollStep&&this.WaitTime>0){
this.ID.scrollTop-=this.ScrollStep+this.Step-this.CTL;
this.Pause();
return;
}
else{
if(this.ID.scrollTop<=0)
this.ID.scrollTop+=this.ClientScroll;
this.ID.scrollTop-=this.Step;
}
break;
case 2:
this.CTL+=this.Step;
if(this.CTL>=this.ScrollStep&&this.WaitTime>0){
this.ID.scrollLeft+=this.ScrollStep+this.Step-this.CTL;
this.Pause();
return;
}
else{
if(this.ID.scrollLeft>=this.ClientScroll)
this.ID.scrollLeft-=this.ClientScroll;
this.ID.scrollLeft+=this.Step;
}
break;
case 3:
this.CTL+=this.Step;
if(this.CTL>=this.ScrollStep&&this.WaitTime>0){
this.ID.scrollLeft-=this.ScrollStep+this.Step-this.CTL;
this.Pause();
return;
}
else{
if(this.ID.scrollLeft<=0)
this.ID.scrollLeft+=this.ClientScroll;
this.ID.scrollLeft-=this.Step;
}
break;
}
}
</script>
</head>
<body>
<div id="divg" style="height:22px;line-height:22px;">
<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>
</div>
</body>
</html>

填写个人信息,赶快回复吧!