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 相关文章推荐
Mootools 1.2教程 滚动条(Slider)
Sep 15 Javascript
JS中Iframe之间传值及子页面与父页面应用
Mar 11 Javascript
js编码、解码函数介绍及其使用示例
Sep 05 Javascript
让复选框只能选择一项的方法
Oct 08 Javascript
Javascript获取当前时间函数和时间操作小结
Oct 01 Javascript
再谈Javascript中的基本类型和引用类型(推荐)
Jul 01 Javascript
jQuery 3.0 的 setter和getter 模式详解
Jul 11 Javascript
在vue-cli脚手架中配置一个vue-router前端路由
Jul 03 Javascript
基于BootStrap的文本编辑器组件Summernote
Oct 27 Javascript
JavaScript函数式编程(Functional Programming)高阶函数(Higher order functions)用法分析
May 22 Javascript
js实现浏览器打印功能的示例代码
Jul 15 Javascript
three.js显示中文字体与tween应用详析
Jan 04 Javascript
使用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 文件上传功能实现代码
2009/06/24 PHP
php中日期加减法运算实现代码
2011/12/08 PHP
PHP读取配置文件类实例(可读取ini,yaml,xml等)
2015/07/28 PHP
yii 2.0中表单小部件的使用方法示例
2017/05/23 PHP
PHP实现的一致性Hash算法详解【分布式算法】
2018/03/31 PHP
jquery中this的使用说明
2010/09/06 Javascript
javascript 实现简单的table排序及table操作练习
2012/12/28 Javascript
Jquery的hide及toggle方法让超链接慢慢消失
2013/09/06 Javascript
Javascript浅谈之引用类型
2013/12/18 Javascript
js判断iframe内的网页是否滚动到底部触发事件
2014/03/18 Javascript
JavaScript中的比较操作符&gt;、=、
2014/12/31 Javascript
jQuery使用append在html元素后同时添加多项内容的方法
2015/03/26 Javascript
Javascript简单改变表单元素背景的方法
2015/07/15 Javascript
Javascript中常见的逻辑题和解决方法
2016/09/17 Javascript
ASP.NET jquery ajax传递参数的实例
2016/11/02 Javascript
BootStrap实现响应式布局导航栏折叠隐藏效果(在小屏幕、手机屏幕浏览时自动折叠隐藏)
2016/11/30 Javascript
原生js实现仿window10系统日历效果的实例
2017/10/31 Javascript
jQuery滚动条美化插件nicescroll简单用法示例
2018/04/18 jQuery
深入剖析Node.js cluster模块
2018/05/23 Javascript
详解解决使用axios发送json后台接收不到的问题
2018/06/27 Javascript
vuex实现的简单购物车功能示例
2019/02/13 Javascript
如何利用JavaScript编写一个格斗小游戏
2021/01/06 Javascript
[06:53]DOTA2每周TOP10 精彩击杀集锦vol.3
2014/06/25 DOTA
[45:06]完美世界DOTA2联赛PWL S2 Magma vs InkIce 第二场 11.28
2020/12/02 DOTA
Python键盘输入转换为列表的实例
2018/06/23 Python
Python实现基于KNN算法的笔迹识别功能详解
2018/07/09 Python
Python wxPython库Core组件BoxSizer用法示例
2018/09/03 Python
keras中的backend.clip用法
2020/05/22 Python
Python绘图之柱形图绘制详解
2020/07/28 Python
实现Python3数组旋转的3种算法实例
2020/09/16 Python
香港礼品网站:GiftU eshop
2017/09/01 全球购物
美国在线眼镜店:GlassesShop
2018/11/15 全球购物
数控技校生自我鉴定
2014/03/02 职场文书
工作所在部门证明
2014/09/21 职场文书
员工离职通知函
2015/04/25 职场文书
golang 接口嵌套实现复用的操作
2021/04/29 Golang