Javascript网页滚动方法
Javascript网页滚动方法 | |
作者:不详 来源于:源码下载吧 发布时间:2007-6-6 16:24:26 [ 字体:大 中 小 ] | |
我想大家都看过各种各样的滚动(最常用的就是用在新闻的更新上面),一般情况下只要不是图片,都是用HTML本身就有提供一个很不错的滚动标记——marquee来完成的(用JS也可以同样实现这种效果);当然并不是说图片就不能那样做。 以下为marquee的一些基本的参数: 该标记语法格式如下: <marquee aligh=left|center|right|top|bottom bgcolor=#n direction=left|right|up|down behavior=type height=n hspace=n scrollamount=n Scrolldelay=n width=n VSpace=n loop=n>内容</marquee> 下面解释一下各参数的含义: align:是设定活动字幕的位置,除了居左、居中、居右三种位置外,又增加靠上(top)和靠下(bottom)两种位置。 Bgcolor:用于设定活动字幕的背景颜色,可以使用英文的单词也可以是十六进制数的。 Direction:用于设定活动字幕的滚动方向是向左(left)、向右(right)、向上(up)、向下(down)。 Behavior:用于设定滚动的方式,主要由三种方式: behavior="scroll"表示由一端滚动到另一端; behavior="slide":表示由一端快速滑动到另一端,且不再重复; behavior="alternate"表示在两端之间来回滚动。 Height:用于设定滚动字幕的高度。 Width:则设定滚动字幕的宽度。 Hspace和vspace:分别用于设定滚动字幕的左右边框和上下边框的宽度。 Scrollamount:用于设定活动字幕的滚动距离。数值越小,滚动的速度就越快。 scrolldelay:用于设定滚动两次之间的延迟时间,数值越小,间隔就越小。 Loop:用于设定滚动的次数,当loop=-1表示一直滚动下去,直到页面更新。其中默认情况是向左滚动无限次,字幕高度是文本高度;滚动范围:水平滚动的宽度是当前位置的宽度;垂直滚动的高度是当前位置的高度。 现在要介绍的是一种新型的滚动,利用JS的方法来做字幕的滚动:向上,在中间停顿一到两秒(就像经典的这种): 将以下代码贴到您要显示的位置就可以了: <script> var marqueeContent=new Array(); //定义一个数组,用来存放显示内容 marqueeContent[0]='<A href="#" onclick="reinitMarquee()">刷新最新列表</FONT></A>'; marqueeContent[1]='<a href=http://www.blueidea.com/updatelist.asp target=_blank>站点最新更新六十条</a>'; marqueeContent[2]='<A href=http://www.blueidea.com/tech/graph/2003/875.asp target=_blank>羽毛效果制作教程</a>'; marqueeContent[3]='<A href=http://www.blueidea.com/tech/program/2003/831.asp target=_blank>MySQL&ASP</a>'; marqueeContent[4]='<A href=http://www.blueidea.com/tech/web/2003/874.asp target=_blank>初步了解CSS3</a>'; marqueeContent[5]='<A href=http://www.blueidea.com/tech/graph/2003/864.asp target=_blank>Fireworks MX 2004执行面版操作</a>'; marqueeContent[6]='<A href=http://www.blueidea.com/tech/graph/2003/872.asp target=_blank>Fireworks MX 2004等高渐变填充</a>'; marqueeContent[7]='<A href=http://www.blueidea.com/photo/gallery/2003/873.asp target=_blank>瓶子里的花</a>'; marqueeContent[8]='<A href=http://www.blueidea.com/tech/graph/2003/871.asp target=_blank>Fireworks MX 实现选项卡式效果</a>'; marqueeContent[9]='<A href=http://www.blueidea.com/photo/gallery/2003/870.asp target=_blank>情侣:黑白的爱情空气</a>'; marqueeContent[10]='<A href=http://www.blueidea.com/tech/graph/2003/866.asp target=_blank>制作 MAC 风格的苹果标志</a>'; marqueeContent[11]='<A href=http://www.blueidea.com/tech/graph/2003/868.asp target=_blank>蛋壳制作及破壳而出的人物合成</a>'; var marqueeInterval=new Array(); //定义一些常用而且要经常用到的变量 var marqueeId=0; var marqueeDelay=4000; var marqueeHeight=16; //接下来的是定义一些要使用到的函数 Array.prototype.random=function() { var a=this; var l=a.length; for(var i=0;i<l;i ) { var r=Math.floor(Math.random()*(l-i)); a=a.slice(0,r).concat(a.slice(r 1)).concat(a[r]); } return a; } function initMarquee() { marqueeContent=marqueeContent.random(); var str=''; for(var i=0;i<Math.min(3,marqueeContent.length);i ) str =(i>0?' ':'') marqueeContent; document.write('<div id=marqueeBox style="overflow:hidden;height:' marqueeHeight 'px" onmouseover="clearInterval(marqueeInterval[0])" onmouseout="marqueeInterval[0]=setInterval(\'startMarquee()\',marqueeDelay)"><div>' str '</div></div>'); marqueeId =2; if(marqueeContent.length>3)marqueeInterval[0]=setInterval("startMarquee()",marqueeDelay); } function reinitMarquee() { js_scroll_content.src='scroll_content2.js'; marqueeContent=marqueeContent.random(); var str=''; for(var i=0;i<Math.min(3,marqueeContent.length);i ) str =(i>0?' ':'') marqueeContent; marqueeBox.childNodes[(marqueeBox.childNodes.length==1?0:1)].innerHTML=str; marqueeId=2; } function startMarquee() { var str=''; for(var i=0;(i<3)&&(marqueeId i<marqueeContent.length);i ) { str =(i>0?' ':'') marqueeContent[marqueeId i]; } marqueeId =3; if(marqueeId>marqueeContent.length)marqueeId=0; if(marqueeBox.childNodes.length==1) { var nextLine=document.createElement('DIV'); nextLine.innerHTML=str; marqueeBox.appendChild(nextLine); } else { marqueeBox.childNodes[0].innerHTML=str; marqueeBox.appendChild(marqueeBox.childNodes[0]); marqueeBox.scrollTop=0; } clearInterval(marqueeInterval[1]); marqueeInterval[1]=setInterval("scrollMarquee()",20); } function scrollMarquee() { marqueeBox.scrollTop ; if(marqueeBox.scrollTop%marqueeHeight==(marqueeHeight-1)){ clearInterval(marqueeInterval[1]); } } initMarquee(); </script> |