js實現橫向跑馬燈效果


首先我們需要一個html代碼的框架如下:

<div style="position: absolute; top: 0px; left: 168px; width: 100%; margin-left: auto; margin-right: auto; height: 47px; border: 0px solid red; overflow: hidden;">
        <ul id="syNoticeUlNew" style="margin: 0px;left:0; top:0;margin-bottom:0px;width:100%;height:47px;position:absolute;">

        </ul>
    </div>

我們的目的是實現ul中的內容進行橫向的一點一點滾動。ul中的內容應該是動態的。於是應該發送ajax來進行內容的獲取拼接。

$.ajax({ type:"post", dataType:"json", url:"${contextPath}/indexPage/getSyNoticeInfo", success:function(result){ var totalStr = ""; if(result.length>0){ for(var i=0 ; i<result.length;i++){ str = "<li style=\"list-style: none;display:inline-block;float:left;height:47px;padding-right:50px;line-height:47px;\">"+
                         "<a style=\"color:white;\" class=\"sstzNoticeStyle\">"+result[i].peopleName+"</a>"+
                         "</li>"; totalStr +=str; } } $("#syNoticeUlNew").empty(); $('#syNoticeUlNew').html(totalStr); syRunHorseLight(); } });

拼接li時候有個class為sstzNoticeStyle。其樣式如下:

.sstzNoticeStyle{ color:white; font-size:16px;text-decoration:none; } .sstzNoticeStyle:hover{ color:white; font-size:16px;text-decoration:none; }

ajax調用syRunHorseLight函數,函數如下:

function syRunHorseLight() { if (syTimer != null) { clearInterval(syTimer); } var oUl = document.getElementById("syNoticeUlNew"); if(oUl != null){ oUl.innerHTML += oUl.innerHTML; oUl.innerHTML += oUl.innerHTML; oUl.innerHTML += oUl.innerHTML; var lis = oUl.getElementsByTagName('li'); var lisTotalWidth = 0; var resetWidth = 0; for (var i = 0; i < lis.length; i++) { lisTotalWidth += lis[i].offsetWidth; } for (var i = 1; i <= lis.length / 4; i++) { resetWidth += lis[i].offsetWidth; } oUl.style.width = lisTotalWidth + 'px'; var left = 0; syTimer = setInterval(function() { left -= 1; if (left <= -resetWidth) { left = 0; } oUl.style.left = left + 'px'; }, 20) $("#syNoticeUlNew").hover(function() { clearInterval(syTimer); }, function() { clearInterval(syTimer); syTimer = setInterval(function() { left -= 1; if (left <= -resetWidth) { left = 0; } oUl.style.left = left + 'px'; }, 20); }) } }

跑馬燈效果就此實現。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM