JavaScript實現文字列表無縫向上滾動__Java

來源:互聯網
上載者:User
原創作品,允許轉載,轉載時請務必以超連結形式標明文章 原始出處 、作者資訊和本人聲明。否則將追究法律責任。
作者: 永恒の_☆ 地址: http://blog.csdn.net/chenghui0317/article/details/8170001

文字列表無縫向上滾動代碼:

<!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><style>/*全域設定*/*{margin:0px;padding:0px;border:0px;}body{font-size:12px;}#marquee{overflow:hidden;height:100px;width:280px; margin:50px auto;}#marquee1{height:auto;}#marquee1 li{height:22px;}#marquee2{height:auto;}#marquee2 li{height:22px;}#result{width:300px;margin:10px auto;}</style></head><body><!-- 其實實現原理很簡單,marquee1 和marquee2  innerHTML 是一樣的嘛 ,假如marquee的scrollTop++ ,那麼只有marquee在往下移。恰好超過的部分隱藏,就感覺marquee沒有動,而是marquee1和marquee2他們向上移動,但是實際上他們從來沒有變過,關鍵就在於當marquee 的頂部已經到達marquee1 的底部的時候,立馬將marquee的scrollTop位置還原成初始狀態,這樣子就感覺 兩個div一直在滾個不停 --><div id="marquee"><div id="marquee1">  <ul>  <li><a href="http://bbs.csdn.net/topics/390219560" style="color: red; font-weight: bold" target="_blank">微軟大會2012購票享7折優惠</a></li>  <li><a href="http://bbs.csdn.net/topics/390270707" style="color: black" target="_blank">微軟Silverlight 5開發書籍匯總</a></li>  <li><a href="http://bbs.csdn.net/topics/390269709" style="color: black" target="_blank">實現.Net代碼產生器討論帖</a></li>  <li><a href="http://bbs.csdn.net/topics/390262160" style="color: black" target="_blank">探討查看SQL變更記錄的方法</a></li>  <li><a href="http://www.csdn.net/article/2012-11-06/2811553" style="color: red; font-weight: bold" target="_blank">魏子鈞:HTML5和JavaScript將長存</a></li>  <li><a href="http://bbs.csdn.net/topics/390272755" style="color: blue; font-weight: bold" target="_blank">Hadoop&BigData 技術贏門票活動</a></li>  <li><a href="http://hbtc2012.hadooper.cn" style="color: red; font-weight: bold" target="_blank">Hadoop與大資料精彩議題發布</a></li>  <li><a href="http://bbs.csdn.net/topics/390230868" style="color: blue; font-weight: bold" target="_blank">Cloud Foundry徵文大賽進行中</a></li>  </ul></div><div id="marquee2"></div></div> <div id="result"></div><script>var browser=navigator.appName;var b_version=navigator.appVersion;var version=b_version.split(";");var trim_Version=version[1].replace(/[ ]/g,"");var speed=10; var marquee = document.getElementById("marquee"); var marquee1 = document.getElementById("marquee1"); var marquee2 = document.getElementById("marquee2"); marquee2.innerHTML = marquee1.innerHTML; function marqueeImpl(){document.getElementById("result").innerHTML = "marquee2.offsetTop: " + marquee2.offsetTop +" marquee.scrollTop:"+marquee.scrollTop;//之後發現,這種方式不相容所有的瀏覽器,比如ie6 ie7 和搜狗,他們擷取的offsetTop 參照物不是父級容器,而是瀏覽器最外層 ,所以需要額外判斷瀏覽器是ie6 ie7還是搜狗。if(navigator.userAgent.toLowerCase().indexOf("metasr")!=-1 || (browser=="Microsoft Internet Explorer" && (trim_Version=="MSIE7.0" || trim_Version=="MSIE6.0"))){if(marquee2.offsetTop - marquee.scrollTop <= 0) {marquee.scrollTop -= marquee1.offsetHeight;}else{ marquee.scrollTop++;} }else{if(marquee2.offsetTop - marquee.offsetTop - marquee.scrollTop <= 0) {marquee.scrollTop -= marquee1.offsetHeight;}else{ marquee.scrollTop++;} }}var marqueeVal = setInterval(marqueeImpl, speed);marquee.onmouseover = function() {clearInterval(marqueeVal);} marquee.onmouseout = function() {marqueeVal = setInterval(marqueeImpl, speed);} </script> </body></html>

文字列表無縫橫向滾動代碼:

<!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>      <style>      /*全域設定*/      *{margin:0px;padding:0px;border:0px;}      body{font-size:12px;}      #marquee{overflow:hidden;height:100px;width:280px; margin:50px auto;}      #marquee1{height:auto;}      #marquee1 li{height:22px;}      #marquee2{height:auto;}      #marquee2 li{height:22px;}      #result{width:300px;margin:10px auto;}    </style>      </head>      <body>      <!-- 其實實現原理很簡單,marquee1 和marquee2  innerHTML 是一樣的嘛 ,假如marquee的scrollTop++ ,那麼只有marquee在往下移。恰好超過的部分隱藏,就感覺marquee沒有動,而是marquee1和marquee2他們向上移動,但是實際上他們從來沒有變過,關鍵就在於當marquee 的頂部已經到達marquee1 的底部的時候,立馬將marquee的scrollTop位置還原成初始狀態,這樣子就感覺 兩個div一直在滾個不停 -->      <div id="marquee">          <div id="marquee1">            <ul>                <li><a href="#" >微軟大會2012購票享7折優惠</a></li>                <li><a href="#" >微軟Silverlight 5開發書籍匯總</a></li>                <li><a href="#" >實現.Net代碼產生器討論帖</a></li>                <li><a href="#" >探討查看SQL變更記錄的方法</a></li>                <li><a href="#" >魏子鈞:HTML5和JavaScript將長存</a></li>                <li><a href="#" >Hadoop&BigData 技術贏門票活動</a></li>                <li><a href="#" >Hadoop與大資料精彩議題發布</a></li>                <li><a href="#" >Cloud Foundry徵文大賽進行中</a></li>            </ul>          </div>  <div id="marquee2"></div>      </div>       <div id="result"></div>      <script>          var speed=100;           var marquee = document.getElementById("marquee");           var marquee1 = document.getElementById("marquee1");           var marquee2 = document.getElementById("marquee2");                 marquee2.innerHTML = marquee1.innerHTML;           function marqueeImpl(){              document.getElementById("result").innerHTML = "marquee2.offsetTop: " + marquee2.offsetTop +" marquee.scrollTop:"+marquee.scrollTop;  if(marquee2.offsetTop - marquee.offsetTop - marquee.scrollTop <= 0) {  marquee.scrollTop -= marquee1.offsetHeight;  }else{   marquee.scrollTop++;  }           }                    var marqueeVal = setInterval(marqueeImpl, speed);          marquee.onmouseover = function() {              clearInterval(marqueeVal);          }           marquee.onmouseout = function() {              marqueeVal = setInterval(marqueeImpl, speed);          }       </script>   <!--向左邊無縫滾動--><style type="text/css">#marquee_1{ overflow:hidden; width:815px;height:30px;}#marquee_1 #marquee1_1 {width:200%; height:30px;}#marquee_1 ul{float:left; height:30px; }#marquee_1 ul li{float:left; line-height:30px;}#marquee_1 li a{margin-right:30px;color:#444444;}</style><div id="marquee_1"><div id="marquee1_1">  <ul>            <li><a href="#" >資源回收筒裡的檔案刪除了怎麼恢複</a></li><li><a href="#" >c盤哪些檔案可以刪除 系統就越來越慢怎麼辦</a></li><li><a href="#" >電腦IME切換不了怎麼辦</a></li><li><a href="#" >PC是什麼意思 </a></li><li><a href="#" >註冊表怎麼開啟 電腦註冊表在哪裡開啟</a></li><li><a href="#" >什麼瀏覽器速度最快 什麼瀏覽器最安全</a></li><li><a href="#" >1m等於多少kb 1MB等於多少KB</a></li><li><a href="#" >ppap.exe是什麼進程</a></li>      </ul>    </div>    <div id="marquee2_1"></div>  </div><script type="text/javascript">var marquee_1 = document.getElementById("marquee_1");var marquee1_1 = document.getElementById("marquee1_1");var marquee2_1 = document.getElementById("marquee2_1");marquee2_1.innerHTML=document.getElementById("marquee1_1").innerHTML;function marqueeImpl_1(){if(marquee_1.scrollLeft-marquee2_1.offsetWidth>=0){ marquee_1.scrollLeft-=marquee1_1.offsetWidth;}else{ marquee_1.scrollLeft++;}}var marqueeVal_1=setInterval(marqueeImpl_1,speed);marquee_1.onmouseover=function(){clearInterval(marqueeVal_1);}marquee_1.onmouseout=function (){marqueeVal_1=setInterval(marqueeImpl_1,speed);}</script></body>  </html>  


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.