Javascript 滾動(dòng)新法

            我想大家都看過各種各樣的滾動(dòng)(最常用的就是用在新聞的更新上面),一般情況下只要不是圖片,都是用HTML本身就有提供一個(gè)很不錯(cuò)的滾動(dòng)標(biāo)記——marquee來完成的(用JS也可以同樣實(shí)現(xiàn)這種效果);當(dāng)然并不是說圖片就不能那樣做。
            以下為marquee的一些基本的參數(shù):
            該標(biāo)記語法格式如下:
          <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>內(nèi)容</marquee>

            下面解釋一下各參數(shù)的含義:
            align:是設(shè)定活動(dòng)字幕的位置,除了居左、居中、居右三種位置外,又增加靠上(top)和靠下(bottom)兩種位置。
            Bgcolor:用于設(shè)定活動(dòng)字幕的背景顏色,可以使用英文的單詞也可以是十六進(jìn)制數(shù)的。
            Direction:用于設(shè)定活動(dòng)字幕的滾動(dòng)方向是向左(left)、向右(right)、向上(up)、向下(down)。
            Behavior:用于設(shè)定滾動(dòng)的方式,主要由三種方式:
          behavior="scroll"表示由一端滾動(dòng)到另一端;
          behavior="slide":表示由一端快速滑動(dòng)到另一端,且不再重復(fù);
          behavior="alternate"表示在兩端之間來回滾動(dòng)。
            Height:用于設(shè)定滾動(dòng)字幕的高度。
            Width:則設(shè)定滾動(dòng)字幕的寬度。
            Hspace和vspace:分別用于設(shè)定滾動(dòng)字幕的左右邊框和上下邊框的寬度。
            Scrollamount:用于設(shè)定活動(dòng)字幕的滾動(dòng)距離。數(shù)值越小,滾動(dòng)的速度就越快。
            scrolldelay:用于設(shè)定滾動(dòng)兩次之間的延遲時(shí)間,數(shù)值越小,間隔就越小。
            Loop:用于設(shè)定滾動(dòng)的次數(shù),當(dāng)loop=-1表示一直滾動(dòng)下去,直到頁面更新。其中默認(rèn)情況是向左滾動(dòng)無限次,字幕高度是文本高度;滾動(dòng)范圍:水平滾動(dòng)的寬度是當(dāng)前位置的寬度;垂直滾動(dòng)的高度是當(dāng)前位置的高度。

            現(xiàn)在要介紹的是一種新型的滾動(dòng),利用JS的方法來做字幕的滾動(dòng):向上,在中間停頓一到兩秒(就像經(jīng)典的這種):
            將以下代碼貼到您要顯示的位置就可以了:
          <script>
          var marqueeContent=new Array(); //定義一個(gè)數(shù)組,用來存放顯示內(nèi)容
          marqueeContent[0]='<A href="#" onclick="reinitMarquee()">刷新最新列表</FONT></A>';
          marqueeContent[1]='<a href=http://www.blueidea.com/updatelist.asp target=_blank>站點(diǎn)最新更新六十條</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執(zhí)行面版操作</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 實(shí)現(xiàn)選項(xiàng)卡式效果</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 風(fēng)格的蘋果標(biāo)志</a>';
          marqueeContent[11]='<A href=http://www.blueidea.com/tech/graph/2003/868.asp target=_blank>蛋殼制作及破殼而出的人物合成</a>';

          var marqueeInterval=new Array(); //定義一些常用而且要經(jīng)常用到的變量
          var marqueeId=0;
          var marqueeDelay=4000;
          var marqueeHeight=16;

          //接下來的是定義一些要使用到的函數(shù)
          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[i];
          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[i];
          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>

            以上已經(jīng)將網(wǎng)站的這種滾動(dòng)的做法做了一個(gè)大概的介紹。
          posted on 2006-08-24 01:02 窮鬼 閱讀(148) 評(píng)論(0)  編輯  收藏 所屬分類: AJAX學(xué)習(xí)
          主站蜘蛛池模板: 霞浦县| 建德市| 株洲县| 吉林省| 江孜县| 龙南县| 尼玛县| 阿瓦提县| 监利县| 景东| 石家庄市| 西峡县| 壤塘县| 克拉玛依市| 龙口市| 松江区| 嫩江县| 桦甸市| 呼伦贝尔市| 大名县| 高陵县| 泸溪县| 阜南县| 乌海市| 合水县| 内乡县| 涿州市| 开平市| 旬阳县| 洛南县| 顺平县| 石狮市| 湟中县| 卓资县| 汝州市| 普定县| 察雅县| 泽普县| 静宁县| 册亨县| 合川市|