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 相关文章推荐
各种常用浏览器getBoundingClientRect的解析
May 21 Javascript
JavaScript 以对象为索引的关联数组
May 19 Javascript
选择复选框按钮置灰否则按钮可用
May 22 Javascript
javascript如何操作HTML下拉列表标签
Aug 20 Javascript
jQuery操作Table技巧大汇总
Jan 23 Javascript
jQuery实现产品对比功能附源码下载
Aug 09 Javascript
AngularJS ng-style中使用filter
Sep 21 Javascript
微信小程序动态添加分享数据
Jun 14 Javascript
Three.js实现3D机房效果
Dec 30 Javascript
解决layer 动态加载select 失效的问题
Sep 18 Javascript
javascript实现页面的实时时钟显示示例
Aug 06 Javascript
如何让vue长列表快速加载
Mar 29 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入门小知识
2008/03/24 PHP
PHP 日志缩略名的创建函数代码
2010/05/26 PHP
Linux环境下php实现给网站截图的方法
2016/05/03 PHP
音乐播放用的的几个函数
2006/09/07 Javascript
js禁止document element对象选中文本实现代码
2013/03/21 Javascript
js confirm()方法的使用方法实例
2013/07/13 Javascript
jquery 实现滚动条下拉时无限加载的简单实例
2016/06/01 Javascript
仿iframe效果Aajx文件上传实例
2016/11/18 Javascript
JS实现的样式切换功能tableCSS实例
2016/12/30 Javascript
babel基本使用详解
2017/02/17 Javascript
对于Javascript 执行上下文的全面了解
2017/09/05 Javascript
浅谈angular4生命周期钩子
2017/09/05 Javascript
微信小程序常用简易小函数总结
2019/02/01 Javascript
vue使用websocket的方法实例分析
2019/06/22 Javascript
JS实现的雪花飘落特效示例
2019/12/03 Javascript
[06:04]DOTA2英雄梦之声Vol19卓尔游侠
2014/06/20 DOTA
[11:33]DAC2018 4.5SOLO赛决赛 MidOne vs Paparazi第二场
2018/04/06 DOTA
[01:16:01]VGJ.S vs Mski Supermajor小组赛C组 BO3 第一场 6.3
2018/06/04 DOTA
Python 爬虫图片简单实现
2017/06/01 Python
python使用 HTMLTestRunner.py生成测试报告
2017/10/20 Python
python实现单链表中删除倒数第K个节点的方法
2018/09/28 Python
Python实现最大子序和的方法示例
2019/07/05 Python
Python OpenCV视频截取并保存实现代码
2019/11/30 Python
Python如何实现Paramiko的二次封装
2021/01/30 Python
html5 canvas实现跟随鼠标旋转的箭头
2016/03/11 HTML / CSS
检测浏览器是否支持html5视频的代码
2013/03/28 HTML / CSS
教师党员思想汇报
2014/01/06 职场文书
公司薪酬管理制度
2014/01/31 职场文书
出纳工作岗位责任制
2014/02/02 职场文书
个人工作主要事迹
2014/05/08 职场文书
党员国庆节演讲稿范文2014
2014/09/21 职场文书
户籍证明模板
2014/09/28 职场文书
领导班子整改方案
2014/10/25 职场文书
追悼会答谢词
2015/01/05 职场文书
公司年会开场白
2015/06/01 职场文书
教你用Java Swing实现自助取款机系统
2021/06/11 Java/Android