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 相关文章推荐
jquery $.ajax相关用法分享
Mar 16 Javascript
基于jQuery实现左右div自适应高度完全相同的代码
Aug 09 Javascript
jQuery替换字符串(实例代码)
Nov 13 Javascript
jqTransform美化表单
Oct 10 Javascript
jQuery validate验证插件使用详解
May 11 Javascript
简单实现js倒计时功能
Feb 13 Javascript
详解AngularJS 模块化
Jun 14 Javascript
利用Vue2.x开发实现JSON树的方法
Jan 04 Javascript
微信小程序中插入激励视频广告并获取收益(实例代码)
Dec 06 Javascript
Node.js学习之内置模块fs用法示例
Jan 22 Javascript
vue实现树状表格效果
Dec 29 Vue.js
如何vue使用el-table遍历循环表头和表体数据
Apr 26 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个人网站架设连环讲(一)
2006/10/09 PHP
Yii2实现上下联动下拉框功能的方法
2016/08/10 PHP
Aster vs Newbee BO5 第三场2.19
2021/03/10 DOTA
JQuery 学习笔记 选择器之一
2009/07/23 Javascript
JS getStyle获取最终样式函数代码
2010/04/01 Javascript
jQuery中ajax的get()方法用法实例
2014/12/26 Javascript
JS基于cookie实现来宾统计记录访客信息的方法
2015/08/04 Javascript
JS实现Fisheye效果动感放大菜单代码
2015/10/21 Javascript
使用EVAL处理jqchart jquery 折线图返回数据无效的解决办法
2015/11/26 Javascript
基于jQuery和CSS3制作响应式水平时间轴附源码下载
2015/12/20 Javascript
基于jQuery实现点击弹出层实例代码
2016/01/01 Javascript
使用JavaScript实现ajax的实例代码
2016/05/11 Javascript
WebSocket+node.js创建即时通信的Web聊天服务器
2016/08/08 Javascript
jQuery在ie6下无法设置select选中的解决方法详解
2016/09/20 Javascript
AngularJS的ng-repeat指令与scope继承关系实例详解
2017/01/21 Javascript
jsonp跨域请求实现示例
2017/03/13 Javascript
微信小程序视图template模板引用的实例详解
2017/09/20 Javascript
Vue基于NUXT的SSR详解
2017/10/24 Javascript
将Sublime Text 3 添加到右键中的简单方法
2017/12/12 Javascript
微信小程序支付前端源码
2018/08/29 Javascript
对layui中table组件工具栏的使用详解
2019/09/19 Javascript
AI小程序之语音听写来了,十分钟掌握百度大脑语音听写全攻略
2020/03/13 Javascript
Vue触发input选取文件点击事件操作
2020/08/07 Javascript
python实现查找excel里某一列重复数据并且剔除后打印的方法
2015/05/26 Python
使用python遍历指定城市的一周气温
2017/03/31 Python
python笔记:mysql、redis操作方法
2017/06/28 Python
Python中交换两个元素的实现方法
2018/06/29 Python
Django框架静态文件处理、中间件、上传文件操作实例详解
2020/02/29 Python
Numpy ndarray 多维数组对象的使用
2021/02/10 Python
Stührling手表官方网站:男女高品质时尚手表的领先零售商
2021/01/07 全球购物
请写出char *p与"零值"比较的if语句
2014/09/24 面试题
公关活动策划方案
2014/05/25 职场文书
党的群众路线批评与自我批评发言稿
2014/10/16 职场文书
工会经费申请报告
2015/05/15 职场文书
四年级数学教学反思
2016/02/16 职场文书
2019年图书室自查报告范本
2019/10/12 职场文书