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

<!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实用的带停顿的逐行文本循环滚动效果丨kiddy官网河北运动地板</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>
    22  //间歇滚动间距(可选)<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>
时间: 2024-08-26 20:42:20

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

javascript小例子:實現四方向文本无缝滚动效果

实现一个文本无缝滚动的效果: <!DOCTYPE html> <!--[if lt IE 7 ]> <html lang="zh-CN" class="ie6"> <![endif]--> <!--[if IE 7 ]> <html lang="zh-CN" class="ie7"> <![endif]--> <!--[if IE 8 ]

JS魔法堂:通过marquee标签实现信息滚动效果

一.前言   有限的空间展现无限的内容,这是滚动最常用到的地方.根据信息滚动效果我们可以有很多的实现方式,但HTML自带的 marquee标签 是其中一个较简单的实现方式.下面记录一下,供日后查阅. 二. marquee标签 的基础知识 示例: <marquee behavior="scroll" direction="left" loop="-1" scrollAmount="12" scrollDelay="

AngularJS 指令 实现文本水平滚动效果

<!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> <meta content="text/html;

前端学习代码实例-JavaScript文本循环变色效果

介绍一下如何实现一行文本实现一段文本内容能够滚动循环变色效果. 此效果可以有效的提高美观度,使用户的印象更加深刻,当然也就能够使网站更加能够留住用户. 代码实例如下: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /> &

20150620文本自动滚动效果

html====== <div class="demo1"> <h3>文本框中的文字自动滚动</h3> <div id="roll" data-rwidth="100" data-rheight="100" class="roll"> <ul id="ul" class="list" style="&qu

JS实现鼠标移上去图片停止滚动移开恢复滚动效果

这是在做个人站的时候展示项目成果,因为不光需要展示,还需要介绍详细内容,就在滚动展示的地方做了这个效果以便于点开想要看的项目. 首先,要做的是一个需要滚动的区域.我前边写过一个关于图片循环滚动的示例,那个是一块块的的滚动==>实现图片的循环滚动 . 这次我们就做滚动区域是平滑循环滚动效果. 下边是布局的HTML代码,原理是在要展示区域的div(.ban_img)里加一个能包含所有需要展示的图的大div(.in_img), <div class=" ban_img">

全屏滚动效果H5FullscreenPage.js

前提: 介于现在很多活动都使用了 类似全屏滚动效果 尤其在微信里面 我自己开发了一个快速构建 此类项目的控件 与市面上大部分控件不同的是此控件还支持元素的动画效果 并提供多种元素效果 基于zepto.js 功能清单: 1 快速实现页面全屏滚动效果.并提供多种翻页效果,兼容大部分ios和android系统. 2 支持在页面中添加多种动画元素效果 来实现淡入,滑入等效果. 3 支持配置音乐功能. 4 支持摇一摇接口功能. 组件核心代码原理: 1 页面滚动 在移动页面上如果想使用滚动,如过没有任何动画

js+css实现带缓冲效果右键弹出菜单

<!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><meta http-equiv="Content-Typ

【ExtJs】带日期组件的文本输入框、容器与Ext.Msg.alert告警框告警两次

ExtJs的UI组件主要模仿客户端的界面效果,甚至其编程方式都有类似之处. 一.基本目标 比如如下的组件,与VC6中的<[mfc]不同对话框之间互相操控.全局变量与日期控件>(点击打开链接)就有异曲同工之妙. 其基本的思想也是先设置两个日期组件与按钮组件,然后,在点击按钮,就触发事件. 二.制作过程 首先,这个网页全程运用ExtJs编程,因此基本的HTML布局,处理引入ExtJS资源之外什么都没有.甚至可以把下面的ExtJs脚本完全写在一个Js里面. <!DOCTYPE HTML PUB