一:竖向滚动效果
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();