重慶分公司,新征程啟航
為企業(yè)提供網(wǎng)站建設(shè)、域名注冊(cè)、服務(wù)器等服務(wù)
為企業(yè)提供網(wǎng)站建設(shè)、域名注冊(cè)、服務(wù)器等服務(wù)
這篇文章主要介紹JS如何實(shí)現(xiàn)無(wú)縫循環(huán)marquee滾動(dòng)效果,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!
雙鴨山網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)公司!從網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、APP開(kāi)發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)公司等網(wǎng)站項(xiàng)目制作,到程序開(kāi)發(fā),運(yùn)營(yíng)維護(hù)。創(chuàng)新互聯(lián)公司公司2013年成立到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來(lái)保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)公司。
無(wú)縫循環(huán)marquee滾動(dòng)JS代碼實(shí)現(xiàn),兼容IE, FireFox, Chrome,供大家參考,具體內(nèi)容如下
首先是CSS和HTML如下:
#marquee_zxd { border: 1px solid red; white-space: nowrap; overflow: hidden; width: 500px; padding-top: 5px; } #marquee_zxd img { height: 100px; }![]()
![]()
![]()
![]()
![]()
下面是JS實(shí)現(xiàn)marquee_zxd.js:
/**除了Chrome以外的瀏覽器可以通過(guò)scrollLeft屬性控制滾動(dòng)*/ function scrolleft(obj){ var $obj = $(obj); //到右邊頂端后不會(huì)再變 //var temp = obj.scrollLeft; //obj.scrollLeft++; var temp = $obj.scrollLeft(); //console.log(temp); $obj.scrollLeft(temp+1); //當(dāng)滾動(dòng)條到達(dá)右邊頂端時(shí);或本身長(zhǎng)度不夠不好滾動(dòng)(漫出才好滾) //if(obj.scrollLeft == temp){ if($obj.scrollLeft() == temp){ obj.innerHTML += obj.innerHTML; console.log('copy'); } //當(dāng)滾動(dòng)條滾動(dòng)了初始內(nèi)容的寬度時(shí),滾動(dòng)條回到最左端,模擬循環(huán) //if (obj.scrollLeft >= obj.firstChild.offsetWidth) // obj.scrollLeft = 0; if ($obj.scrollLeft() >= obj.firstChild.offsetWidth) $obj.scrollLeft(0); } /**除了Chrome以外的瀏覽器可以通過(guò)scrolleft()滾動(dòng)*/ function initMarquee(){ var aaa = document.getElementById('marquee_zxd'); var MyMar = setInterval(function(){ scrolleft(aaa); }, 20); //鼠標(biāo)移上時(shí)清除定時(shí)器達(dá)到滾動(dòng)停止的目的 aaa.onmouseover=function() {clearInterval(MyMar);}; //鼠標(biāo)移開(kāi)時(shí)重設(shè)定時(shí)器 aaa.onmouseout=function() {MyMar = setInterval(function(){ scrolleft(aaa); }, 20);}; } /**Chrome定時(shí)器循環(huán)函數(shù),通過(guò)relative布局的left屬性控制滾動(dòng)*/ 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瀏覽器可以通過(guò)scrolleftChrome滾動(dòng)*/ function initMarqueeChrome() { //局部變量不污染全局變量空間 var $marquee_inner = $('#marquee_inner'); //原內(nèi)容大小 var inner_width = $marquee_inner.css('width'); //復(fù)制一份原內(nèi)容 var innerHtml = $marquee_inner.html(); $marquee_inner.html(innerHtml + innerHtml); console.log(inner_width); //參數(shù)采用字符串形式的缺陷:參數(shù)不能被周期性改變,參數(shù)必須是全局變量 //var MyMar = setInterval("scrolleftChrome($marquee_inner, inner_width)", 5000); var MyMar = setInterval(function(){ //參數(shù)不污染全局變量空間 scrolleftChrome($marquee_inner, inner_width); }, 50); var marquee_zxd = document.getElementById('marquee_zxd'); //鼠標(biāo)移上時(shí)清除定時(shí)器達(dá)到滾動(dòng)停止的目的 marquee_zxd.onmouseover=function() {clearInterval(MyMar);}; //鼠標(biāo)移開(kāi)時(shí)重設(shè)定時(shí)器 marquee_zxd.onmouseout=function() { //參數(shù)采用字符串形式的缺陷:參數(shù)不能被周期性改變,參數(shù)必須是全局變量 //MyMar = setInterval("scrolleftChrome($marquee_inner, inner_width)", 50); MyMar = setInterval(function(){ //參數(shù)不污染全局變量空間 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"); } });
以上是“JS如何實(shí)現(xiàn)無(wú)縫循環(huán)marquee滾動(dòng)效果”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!