国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

JS實現無縫循環marquee滾動效果

2019-11-19 16:32:00
字體:
來源:轉載
供稿:網友

無縫循環marquee滾動JS代碼實現,兼容IE, FireFox, Chrome,供大家參考,具體內容如下

首先是CSS和HTML如下:

  #marquee_zxd {    border: 1px solid red;    white-space: nowrap;    overflow: hidden;    width: 500px;    padding-top: 5px;  }  #marquee_zxd img {    height: 100px;  }<!-- 橫向一定要是span -->    <div id="marquee_zxd"><span>      <!-- 內嵌一個div很重要,里面的元素必須是一個整體的移動。另外橫移時,必須是行級元素只占自己的空間。 -->      <div id="marquee_inner" style="position:relative; display: inline-block;">      <img src="img/duck.png"/>      <img src="img/donkey.png"/>      <img src="img/eggbird.png"/>      <img src="img/elephant.png"/>      <img src="img/butterfly.png"/>    </div>    </span></div><script type="text/javascript" src="${cpath}/js/marquee_zxd.js"></script>

下面是JS實現marquee_zxd.js:

/**除了Chrome以外的瀏覽器可以通過scrollLeft屬性控制滾動*/function scrolleft(obj){  var $obj = $(obj);   //到右邊頂端后不會再變  //var temp = obj.scrollLeft;  //obj.scrollLeft++;  var temp = $obj.scrollLeft();  //console.log(temp);  $obj.scrollLeft(temp+1);  //當滾動條到達右邊頂端時;或本身長度不夠不好滾動(漫出才好滾)  //if(obj.scrollLeft == temp){  if($obj.scrollLeft() == temp){    obj.innerHTML += obj.innerHTML;    console.log('copy');  }  //當滾動條滾動了初始內容的寬度時,滾動條回到最左端,模擬循環  //if (obj.scrollLeft >= obj.firstChild.offsetWidth)  //  obj.scrollLeft = 0;  if ($obj.scrollLeft() >= obj.firstChild.offsetWidth)    $obj.scrollLeft(0);}/**除了Chrome以外的瀏覽器可以通過scrolleft()滾動*/function initMarquee(){  var aaa = document.getElementById('marquee_zxd');  var MyMar = setInterval(function(){    scrolleft(aaa);  }, 20);  //鼠標移上時清除定時器達到滾動停止的目的  aaa.onmouseover=function() {clearInterval(MyMar);};  //鼠標移開時重設定時器  aaa.onmouseout=function() {MyMar = setInterval(function(){    scrolleft(aaa);  }, 20);};}  /**Chrome定時器循環函數,通過relative布局的left屬性控制滾動*/function scrolleftChrome($marquee_inner, inner_width){  var width = parseInt(inner_width);  var leftPx = $marquee_inner.css("left");  //兼容IE  if(leftPx == 'auto')    leftPx = 0;  //位置左移  var left = parseInt(leftPx);      left = left - 1;  //到頂歸位  if(left <= -width)    left = 0;  $marquee_inner.css("left", left);  //console.log(width + ", " + left);}/**Chrome瀏覽器可以通過scrolleftChrome滾動*/function initMarqueeChrome() {  //局部變量不污染全局變量空間  var $marquee_inner = $('#marquee_inner');  //原內容大小  var inner_width = $marquee_inner.css('width');  //復制一份原內容  var innerHtml = $marquee_inner.html();  $marquee_inner.html(innerHtml + innerHtml);  console.log(inner_width);  //參數采用字符串形式的缺陷:參數不能被周期性改變,參數必須是全局變量  //var MyMar = setInterval("scrolleftChrome($marquee_inner, inner_width)", 5000);  var MyMar = setInterval(function(){    //參數不污染全局變量空間    scrolleftChrome($marquee_inner, inner_width);  }, 50);  var marquee_zxd = document.getElementById('marquee_zxd');  //鼠標移上時清除定時器達到滾動停止的目的  marquee_zxd.onmouseover=function() {clearInterval(MyMar);};  //鼠標移開時重設定時器  marquee_zxd.onmouseout=function() {    //參數采用字符串形式的缺陷:參數不能被周期性改變,參數必須是全局變量    //MyMar = setInterval("scrolleftChrome($marquee_inner, inner_width)", 50);    MyMar = setInterval(function(){      //參數不污染全局變量空間      scrolleftChrome($marquee_inner, inner_width);    }, 50);  };}$(function(){  var ua = window.navigator.userAgent;   var isIE = window.ActiveXObject != undefined && ua.indexOf("MSIE") != -1;   var isFirefox = ua.indexOf("Firefox") != -1;   var isChrome = ua.indexOf("Chrome") && window.chrome;   if(isChrome){    initMarqueeChrome();    console.log("isChrome: initMarqueeChrome");  }else{    initMarquee();    console.log("isChrome: initMarquee");  }});

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 大埔县| 兖州市| 马龙县| 行唐县| 犍为县| 汝南县| 白河县| 锡林郭勒盟| 宁陕县| 温宿县| 祁连县| 遵化市| 仁化县| 大悟县| 嵊泗县| 垣曲县| 怀远县| 新疆| 巢湖市| 乌什县| 江华| 云霄县| 紫阳县| 准格尔旗| 孝感市| 景泰县| 贡山| 通道| 柏乡县| 大兴区| 承德县| 五指山市| 金沙县| 桂阳县| 平定县| 资源县| 灵寿县| 聂拉木县| 常山县| 灵寿县| 大荔县|