【JS】JS 公告豎向、橫線滾動效果
阿新 • • 發佈:2019-02-14
一:豎向滾動效果
1.html
<div id="scroll_noticeMsg" class="noticeMsg"> <ul id="scroll_begin"> <li>資料一</li> <li>資料二</li> <li>資料三</li> <li>資料四</li> <li>資料五</li> </ul> <ul id="scroll_end"></ul> </div>
2.CSS
.noticeMsg { overflow: hidden; white-space: nowrap; height: 30px; width: 100%; max-height: 2rem; font-size: .65rem; -webkit-transition: .4s; -o-transition: .4s; transition: .4s; -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); background: url(../Images/notice.png) left 10px center no-repeat; } #scroll_begin li, #scroll_end li { line-height: 32px; text-indent: 30px; }
3.JS
/*新聞滾動*/ $(function () { var $this = $(".noticeMsg"); var scrollTimer; //hover()方法的含義是滑鼠滑入滑出,它對應著兩個事件,即mouseenter和mouseleave,因此可通過trigger("mouseleave")來觸發hover事件的第二個函式 $this.hover( function () { clearInterval(scrollTimer); }, function () { scrollTimer = setInterval(function () { scrollNews($this); }, 3000); } ).trigger("mouseleave");//當用戶進入頁面後就會觸發hover事件的第二個函式,從而使內容滾動起來 }); function scrollNews(obj) { var $self = obj.find("ul:first"); var lineHeight = $self.find("li:first").height(); $self.animate({"marginTop": -lineHeight + "px"}, 600, function () { //把所有匹配的元素追加到$self元素的後面,所以才出現這種周而復始滾動的效果 $self.css({marginTop: 0}).find("li:first").appendTo($self); }) }
二:橫向滾動效果
1.CSS
#scroll_noticeMsg {height:26px;overflow: hidden;white-space: nowrap;width:535px;margin-left:10px;}
#scroll_begin,#scroll_end {display: inline;}
- JS
//文字橫向滾動
function ScrollImgLeft(){
var speed=50;
var MyMar = null;
var scroll_begin = document.getElementById("scroll_begin");
var scroll_end = document.getElementById("scroll_end");
var scroll_div = document.getElementById("scroll_noticeMsg");
scroll_end.innerHTML=scroll_begin.innerHTML;
function Marquee(){
if(scroll_end.offsetWidth-scroll_div.scrollLeft<=0)
scroll_div.scrollLeft-=scroll_begin.offsetWidth;
else
scroll_div.scrollLeft++;
}
MyMar=setInterval(Marquee,speed);
scroll_div.onmouseover = function(){
clearInterval(MyMar);
}
scroll_div.onmouseout = function(){
MyMar = setInterval(Marquee,speed);
}
}
ScrollImgLeft();