【JS】JS 公告竖向、横线滚动效果

一:竖向滚动效果
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;}
  1. 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();
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值