JS实用的带停顿的逐行文本循环滚动效果实例


Posted in Javascript onNovember 23, 2016

如下所示:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  <html xmlns="http://www.w3.org/1999/xhtml">
  <head>
  <title>JS实用的带停顿的逐行文本循环滚动效果</title>
  <meta http-equiv="content-type" content="text/html;charset=gb2312">
  <style type="text/css">
  #scrollBox2{font-size:12px;width:260px;color:#646464;line-height:22px;height:66px;overflow:hidden;text-align:left;}
  </style>
  </head>
  <body>
  <div id="scrollBox2" style="text-align:left;">
  欢迎光临 
  实用的逐行文本滚动效果<br>
  滚动一行至另一行时有所停顿<br>
  希望大家喜欢,感觉挺简洁的代码<br>
  </div>
  <script>
  window.onload=function(){
  new Marquee(
  "scrollBox2", //容器ID<br>
  0, //向上滚动(0向上 1向下 2向左 3向右)<br>
  2, //滚动的步长<br>
  200, //容器可视宽度<br>
  64, //容器可视高度<br>
  50, //定时器 数值越小,滚动的速度越快(1000=1秒,建议不小于20)<br>
  2000, //间歇停顿时间(0为不停顿,1000=1秒)<br>
  1000, //开始时的等待时间(0为不等待,1000=1秒)<br>
 //间歇滚动间距(可选)<br>
  );
  };
  function Marquee(){
  this.ID=document.getElementById(arguments[0]);
  this.Direction=arguments[1];
  this.Step=arguments[2];
  this.Width=arguments[3];
  this.Height=arguments[4];
  this.Timer=arguments[5];
  this.WaitTime=arguments[6];
  this.StopTime=arguments[7];
  if(arguments[8]){this.ScrollStep=arguments[8];}else{this.ScrollStep=this.Direction>1?this.Width:this.Height;}
  this.CTL=this.StartID=this.Stop=this.MouseOver=0;
  this.ID.style.overflowX=this.ID.style.overflowY="hidden";
  this.ID.noWrap=true;
  this.ID.style.width=this.Width;
  this.ID.style.height=this.Height;
  this.ClientScroll=this.Direction>1?this.ID.scrollWidth:this.ID.scrollHeight;
  this.ID.innerHTML+=this.ID.innerHTML;
  this.Start(this,this.Timer,this.WaitTime,this.StopTime);
  }
  Marquee.prototype.Start=function(msobj,timer,waittime,stoptime){
  msobj.StartID=function(){msobj.Scroll();}
  msobj.Continue=function(){
  if(msobj.MouseOver==1){setTimeout(msobj.Continue,waittime);}
  else{clearInterval(msobj.TimerID); msobj.CTL=msobj.Stop=0; msobj.TimerID=setInterval(msobj.StartID,timer);}
  }
  msobj.Pause=function(){msobj.Stop=1; clearInterval(msobj.TimerID); setTimeout(msobj.Continue,waittime);}
  msobj.Begin=function(){
  msobj.TimerID=setInterval(msobj.StartID,timer);
  msobj.ID.onmouseover=function(){msobj.MouseOver=1; clearInterval(msobj.TimerID);}
  msobj.ID.onmouseout=function(){msobj.MouseOver=0; if(msobj.Stop==0){clearInterval(msobj.TimerID); msobj.TimerID=setInterval(msobj.StartID,timer);}}
  }
  setTimeout(msobj.Begin,stoptime);
  }
  Marquee.prototype.Scroll=function(){
  switch(this.Direction){
  case 0:
  this.CTL+=this.Step;
  if(this.CTL>=this.ScrollStep&&this.WaitTime>0){this.ID.scrollTop+=this.ScrollStep+this.Step-this.CTL; this.Pause(); return;}
  else{if(this.ID.scrollTop>=this.ClientScroll) this.ID.scrollTop-=this.ClientScroll; this.ID.scrollTop+=this.Step;}
  break;
  case 1:
  this.CTL+=this.Step;
  if(this.CTL>=this.ScrollStep&&this.WaitTime>0){this.ID.scrollTop-=this.ScrollStep+this.Step-this.CTL; this.Pause(); return;}
  else{if(this.ID.scrollTop<=0) this.ID.scrollTop+=this.ClientScroll; this.ID.scrollTop-=this.Step;}
  break;
  case 2:
  this.CTL+=this.Step;
  if(this.CTL>=this.ScrollStep&&this.WaitTime>0){this.ID.scrollLeft+=this.ScrollStep+this.Step-this.CTL; this.Pause(); return;}
  else{if(this.ID.scrollLeft>=this.ClientScroll) this.ID.scrollLeft-=this.ClientScroll; this.ID.scrollLeft+=this.Step;}
  break;
  case 3:
  this.CTL+=this.Step;
  if(this.CTL>=this.ScrollStep&&this.WaitTime>0){this.ID.scrollLeft-=this.ScrollStep+this.Step-this.CTL; this.Pause(); return;}
  else{if(this.ID.scrollLeft<=0) this.ID.scrollLeft+=this.ClientScroll; this.ID.scrollLeft-=this.Step;}
  break;
  }
  }
  </script>
  </body>
  </html>
  <br><br><hr>

以上这篇JS实用的带停顿的逐行文本循环滚动效果实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
动态加载外部javascript文件的函数代码分享
Jul 28 Javascript
基于JavaScript实现 获取鼠标点击位置坐标的方法
Apr 12 Javascript
jQuery中ajax的使用与缓存问题的解决方法
Dec 19 Javascript
js自定义鼠标右键的实现原理及源码
Jun 23 Javascript
jquery模拟alert的弹窗插件
Jul 31 Javascript
JavaScript Length 属性的总结
Nov 02 Javascript
JavaScript基本语法学习教程
Jan 14 Javascript
seajs下require书写约定实例分析
May 16 Javascript
axios取消请求的实践记录分享
Sep 26 Javascript
Typescript的三种运行方式(小结)
Sep 18 Javascript
微信小程序实现下滑到底部自动翻页功能
Mar 07 Javascript
vue3.0 项目搭建和使用流程
Mar 04 Vue.js
使用jquery实现的循环连续可停顿滚动实例
Nov 23 #Javascript
纯JS代码实现隔行变色鼠标移入高亮
Nov 23 #Javascript
jQuery实现ToolTip元素定位显示功能示例
Nov 23 #Javascript
详解jQuery的Cookie插件
Nov 23 #Javascript
JS 实现可停顿的垂直滚动实例代码
Nov 23 #Javascript
Dropzone.js实现文件拖拽上传功能(附源码下载)
Nov 22 #Javascript
解析jQueryEasyUI的使用
Nov 22 #Javascript
You might like
php命名空间学习详解
2014/02/27 PHP
PHP模块化安装教程
2016/06/01 PHP
Yii2中简单的场景使用介绍
2017/06/02 PHP
Laravel框架Eloquent ORM删除数据操作示例
2019/12/03 PHP
Yii框架小部件(Widgets)用法实例详解
2020/05/15 PHP
js给网页加上背景音乐及选择音效的方法
2015/03/03 Javascript
js 右侧浮动层效果实现代码(跟随滚动)
2015/11/22 Javascript
JS脚本实现动态给标签控件添加事件的方法
2016/06/02 Javascript
JavaScript中日期函数的相关操作知识
2016/08/03 Javascript
JS实现页面进入和返回定位到具体位置
2016/12/08 Javascript
jquery实现超简单的瀑布流布局【推荐】
2017/03/08 Javascript
Angular @HostBinding()和@HostListener()用法
2018/03/05 Javascript
vue解决弹出蒙层滑动穿透问题的方法
2018/09/22 Javascript
谈谈IntersectionObserver懒加载的具体使用
2019/10/15 Javascript
JS实现骰子3D旋转效果
2019/10/24 Javascript
[51:15]2014 DOTA2国际邀请赛中国区预选赛 Orenda VS LGD-GAMING
2014/05/22 DOTA
python进阶教程之词典、字典、dict
2014/08/29 Python
快速实现基于Python的微信聊天机器人示例代码
2017/03/03 Python
python利用OpenCV2实现人脸检测
2020/04/16 Python
Django ManyToManyField 跨越中间表查询的方法
2018/12/18 Python
在Python中表示一个对象的方法
2019/06/25 Python
利用python中集合的唯一性实现去重
2020/02/11 Python
Python urllib库如何添加headers过程解析
2020/10/05 Python
瑜伽灵感珠宝:Satya Jewelry
2018/01/06 全球购物
房地产销售大学生自我评价分享
2013/11/11 职场文书
给排水工程师岗位职责
2013/11/21 职场文书
医院辞职信范文
2014/01/17 职场文书
年终奖发放方案
2014/06/02 职场文书
伊琍体标语
2014/06/25 职场文书
2014坚持党风廉政建设思想汇报
2014/09/18 职场文书
五一劳动节慰问信
2015/02/14 职场文书
2015年银行员工工作总结
2015/04/24 职场文书
学生病假条怎么写
2015/08/17 职场文书
2019年感恩励志演讲稿(收藏备用)
2019/09/11 职场文书
Django debug为True时,css加载失败的解决方案
2021/04/24 Python
用python自动生成日历
2021/04/24 Python