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 相关文章推荐
兼容多浏览器的字幕特效Marquee的通用js类
Jul 20 Javascript
javascript 出生日期和身份证判断大全
Nov 13 Javascript
Javascript 变量作用域 两个可能会被忽略的小特性
Mar 23 Javascript
浮动的div自适应居中显示的js代码
Dec 23 Javascript
js的hasownproperty使用示例
Mar 02 Javascript
clipboard.js无需Flash无需依赖任何JS库实现文本复制与剪切
Oct 10 Javascript
关于Sequelize连接查询时inlude中model和association的区别详解
Feb 27 Javascript
js异步编程小技巧详解
Aug 14 Javascript
Vue的事件响应式进度条组件实例详解
Feb 04 Javascript
javascript对HTML字符转义与反转义
Dec 13 Javascript
小程序自定义单页面、全局导航栏的实现代码
Mar 15 Javascript
微信小程序学习笔记之函数定义、页面渲染图文详解
Mar 28 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中使用addslashes函数报错问题的解决方法
2013/02/06 PHP
php输出xml属性的方法
2015/03/19 PHP
php动态变量定义及使用
2015/06/10 PHP
PHP调用全国天气预报数据接口查询天气示例
2019/02/20 PHP
PHP判断当前使用的是什么浏览器(推荐)
2019/10/27 PHP
js ondocumentready onmouseover onclick onmouseout 样式
2010/07/22 Javascript
浅析JS刷新框架中的其他页面 &amp;&amp; JS刷新窗口方法汇总
2013/07/08 Javascript
使用jQuery插件创建常规模态窗口登陆效果
2013/08/23 Javascript
jQuery实现的向下图文信息滚动效果
2015/05/03 Javascript
js实现每日自动换一张图片的方法
2015/05/04 Javascript
jquery validate demo 基础
2015/10/29 Javascript
javascript的正则匹配方法学习
2016/02/24 Javascript
个人网站留言页面(前端jQuery编写、后台php读写MySQL)
2016/05/03 Javascript
Java  Spring 事务回滚详解
2016/10/17 Javascript
jQuery双向列表选择器select版
2016/11/01 Javascript
Node.js开发教程之基于OnceIO框架实现文件上传和验证功能
2016/11/30 Javascript
从零学习node.js之详解异步控制工具async(八)
2017/02/27 Javascript
JS实现搜索关键词的智能提示功能
2017/07/07 Javascript
JS处理一些简单计算题
2018/02/24 Javascript
JS实现超级好看的鼠标小尾巴特效
2020/12/01 Javascript
python实现植物大战僵尸游戏实例代码
2019/06/10 Python
python实现桌面托盘气泡提示
2019/07/29 Python
Python使用selenium + headless chrome获取网页内容的方法示例
2019/10/16 Python
Python爬虫抓取论坛关键字过程解析
2020/10/19 Python
CSS3 仿微信聊天小气泡实例代码
2017/04/05 HTML / CSS
世界第一冲浪品牌:O’Neill
2016/08/30 全球购物
工商管理毕业生推荐信
2013/12/24 职场文书
证券期货行业个人的自我评价
2013/12/26 职场文书
工程专业应届生求职信
2014/02/19 职场文书
矿泉水广告词
2014/03/20 职场文书
自我推荐信范文
2014/05/09 职场文书
党建工作经验交流材料
2014/05/25 职场文书
学生考试舞弊检讨书
2015/01/01 职场文书
详解JAVA中的OPTIONAL
2021/06/14 Java/Android
我的收音机情缘
2022/04/05 无线电
浅谈为什么我的 z-index 又不生效了
2022/07/15 HTML / CSS