再次更新!MSClass (Class Of Marquee Scroll通用不间断滚动JS封装类 Ver 1.6)


Posted in Javascript onFebruary 05, 2007

再次更新!MSClass (Class Of Marquee Scroll通用不间断滚动JS封装类 Ver 1.6)

/*MSClass (Class Of Marquee Scroll通用不间断滚动JS封装类) Ver 1.6*\

 制作时间:2006-08-29 (Ver 0.5)
 发布时间:2006-08-31 (Ver 0.8)
 更新时间:2007-01-31 (Ver 1.6)
 更新说明: + 加入功能 * 修正、完善
        1.6.070131
                + 禁止鼠标控制暂停或继续 (将第9个参数设置为-1或者动态赋值将ScrollSetp设置为-1)
                + 判断是否可以滚动 (若内容区域小于显示区域,则自动取消滚动)
                + 跳过初始化错误 (避免引起其它滚动的停止)
                + 默认值 (除容器ID必选外,其他参数均可根据情况进行选择设置)
                + 参数动态赋值 (方向可用英文表示top|bottom|left|right,使其更直观、方便)
                * 文字滚动不准确 (本次更新主要目的解决此Bug,感谢周?参与测试)
        1.4.061211
                + 鼠标悬停改变滚动方向 (鼠标悬停控制左右滚动)
                * 由于文档下载过慢而导致获取的高度/宽度不准确
                * 浏览器兼容问题 (IE、FF、Opera、NS、MYIE)
        1.2.060922
                + 指定范围间歇滚动
                * 程序调整
                * 连续间歇滚动停止的错误
        1.0.060901
                + 向下、向右滚动
                + 开始等待时间
                + 连续滚动
                * 调整时间单位
                * 滚动误差
                * 随机死循环
                * 加强性能
                * 程序优化
        0.8.060829
                  翻屏不间断向上、向左滚动

 演示地址:http://www.popub.net/script/MSClass.html
 下载地址:http://www.popub.net/script/MSClass.js

 应用说明:页面包含<script type="text/javascript" src="MSClass.js"></script>

        创建实例:
                //参数直接赋值法
                new Marquee("marquee")
                new Marquee("marquee","top")
                ......
                new Marquee("marquee",0,1,760,52)
                new Marquee("marquee","top",1,760,52,50,5000)
                ......
                new Marquee("marquee",0,1,760,104,50,5000,3000,52)
                new Marquee("marquee",null,null,760,104,null,5000,null,-1)

                //参数动态赋值法
                var marquee1 = new Marquee("marquee")        *此参数必选
                marquee1.Direction = "top";        或者        marquee1.Direction = 0;
                marquee1.Step = 1;
                marquee1.Width = 760;
                marquee1.Height = 52;
                marquee1.Timer = 50;
                marquee1.DelayTime = 5000;
                marquee1.WaitTime = 3000;
                marquee1.ScrollStep = 52;
                marquee1.Start();

        参数说明:
                ID                "marquee"        容器ID                (必选)
                Direction        (0)                滚动方向        (可选,默认为0向上滚动) 可设置的值包括:0,1,2,3,"top","bottom","left","right" (0向上 1向下 2向左 3向右)
                Step                (1)                滚动的步长        (可选,默认值为2,数值越大,滚动越快)
                Width                (760)                容器可视宽度        (可选,默认值为容器初始设置的宽度)
                Height                (52)                容器可视高度        (可选,默认值为容器初始设置的高度)
                Timer                (50)                定时器                (可选,默认值为30,数值越小,滚动的速度越快,1000=1秒,建议不小于20)
                DelayTime        (5000)                间歇停顿延迟时间(可选,默认为0不停顿,1000=1秒)
                WaitTime        (3000)                开始时的等待时间(可选,默认或0为不等待,1000=1秒)
                ScrollStep        (52)                间歇滚动间距        (可选,默认为翻屏宽/高度,该数值与延迟均为0则为鼠标悬停控制,-1禁止鼠标控制)
 使用建议:
                1、建议直接赋予容器的显示区域的宽度和高度,如(<div id="marquee" style="width:760px;height:52px;">......</div>)
                2、建议为容器添加样式overflow = auto,如(<div id="marquee" style="width:760px;height:52px;overflow:auto;">......</div>)
                3、为了更准确的获取滚动区域的宽度和高度,请尽可能将各滚动单位直接赋予正确宽高度
                4、对于TABLE标记的横向滚动,需要对TABLE添加样式display = inline,如(<div id="marquee" style="width:760px;height:52px;overflow:auto;"><table style="display:inline">......</table></div>)
                5、对于翻屏滚动或间歇滚动,要注意各滚动单位间的间距,同时需要对容器的可视高度和可视宽度做好准确的设置,对于各滚动单位间的间距可以通过设置行间距或者单元格的高宽度来进行调整
                6、对于LI自动换行的问题暂时没有更好的解决办法,建议将其转换成表格(TABLE)的形式来达到同等的效果
                7、针对横向滚动的文字段落,如果最末端是以空格" "结束的,请将空格" "转换成" "
                8、鼠标悬停滚动思想源自Flash,所以有一定的局限性(容器内仅允许用图片<img>或者带链接的图片<a><img></a>的形式,并需要禁止其自动换行)

 感

谢:
        周? zhoujun#yuchengtech.com (文字滚动跳行的bug) 2007/01/31
        自本程序发布以来,收到不少朋友的邮件,提出了很多意见和建议,感谢大家的支持!
很不错。

不过演示代码的new Marquee("marquee",0,1,760,52,50,5000,3000)那么多参数看了让人有点迷糊,呵呵,做成这种模式可能让人看得懂一些:

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];  
    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.ID.innerHTML += this.ID.innerHTML;  
}  

然后使用:

var m = new Marquee;  
m.ID = document.getElementById("marquee");  
m.Direction = 0;  
m.Step = 1;  
m.Width = 760;  
// ......  
m.Start(m, m.Timer, m.WaitTime, m.StopTime); 

m.Start的参数好像都和m有关,可以省略掉?
Javascript 相关文章推荐
修复ie8&amp;chrome下window的resize事件多次执行
Oct 20 Javascript
jQuery源码分析-03构造jQuery对象-源码结构和核心函数
Nov 14 Javascript
datagrid框架的删除添加与修改
Apr 08 Javascript
使用javascript实现页面定时跳转总结篇
Sep 21 Javascript
jQuery实现公告文字左右滚动的实例代码
Oct 29 Javascript
Javascript打印局部页面实例
Jun 21 Javascript
jQuery实现带遮罩层效果的blockUI弹出层示例【附demo源码下载】
Sep 14 Javascript
bootstrap 表单验证使用方法
Jan 11 Javascript
js es6系列教程 - 新的类语法实战选项卡(详解)
Sep 02 Javascript
解决JQuery全选/反选第二次失效的问题
Oct 11 jQuery
layui中layer前端组件实现图片显示功能的方法分析
Oct 13 Javascript
vue-cli3.0如何使用CDN区分开发、生产、预发布环境
Nov 22 Javascript
js滚动条多种样式,推荐
Feb 05 #Javascript
如何在标题栏显示框架内页面的标题
Feb 03 #Javascript
张孝祥JavaScript学习阶段性总结(2)--(X)HTML学习
Feb 03 #Javascript
使用JS操作页面表格,元素的一些技巧
Feb 02 #Javascript
JavaScript使用cookie
Feb 02 #Javascript
如何判断图片地址是否失效
Feb 02 #Javascript
Javascript的IE和Firefox兼容性汇编(zz)
Feb 02 #Javascript
You might like
php数据库密码的找回的步骤
2011/01/12 PHP
PHP基于自定义类随机生成姓名的方法示例
2017/08/05 PHP
php strftime函数的详细用法
2018/06/21 PHP
PHP高并发和大流量解决方案整理
2019/12/24 PHP
防止动态加载JavaScript引起的内存泄漏问题
2009/10/08 Javascript
javascript游戏开发之《三国志曹操传》零部件开发(一)让静态人物动起来
2013/01/23 Javascript
结合JQ1.9通过js正则判断各种浏览器版本的方法
2013/12/30 Javascript
jQuery数据缓存用法分析
2015/02/20 Javascript
JavaScript获取两个数组交集的方法
2015/06/09 Javascript
javascript 中的 delete及delete运算符
2015/11/15 Javascript
学习javascript文件加载优化
2016/02/19 Javascript
jQuery获取table行数并输出单元格内容的实现方法
2016/06/30 Javascript
在Vue.js中使用Mixins的方法
2017/09/12 Javascript
html中通过JS获取JSON数据并加载的方法
2017/11/30 Javascript
jQuery实现文字超过1行、2行或规定的行数时自动加省略号的方法
2018/03/28 jQuery
vue中格式化时间过滤器代码实例
2019/04/17 Javascript
Element实现表格分页数据选择+全选所有完善批量操作
2019/06/07 Javascript
js全屏事件fullscreenchange 实现全屏、退出全屏操作
2019/09/17 Javascript
Python程序中使用SQLAlchemy时出现乱码的解决方案
2015/04/24 Python
Python3.5内置模块之shelve模块、xml模块、configparser模块、hashlib、hmac模块用法分析
2019/04/27 Python
在django中form的label和verbose name的区别说明
2020/05/20 Python
Python如何输出百分比
2020/07/31 Python
HTML5时代CSS设置漂亮字体取代图片
2014/09/04 HTML / CSS
HTML5中微数据概述及在搜索引擎中的使用举例
2013/02/07 HTML / CSS
美赞臣新加坡官方旗舰店:Enfagrow新加坡
2019/05/15 全球购物
欧缇丽加拿大官方网站:Caudalie加拿大
2019/07/18 全球购物
爱岗敬业演讲稿范文
2014/01/14 职场文书
生育关怀行动实施方案
2014/03/26 职场文书
学术诚信承诺书
2014/05/26 职场文书
保护水资源的标语
2014/06/17 职场文书
普通党员个人剖析材料
2014/10/08 职场文书
2015新年联欢晚会开场白
2014/12/14 职场文书
小学生五一劳动节演讲稿
2015/03/18 职场文书
观看《信仰》心得体会
2016/01/15 职场文书
2016基督教会圣诞节开幕词
2016/03/04 职场文书
MySQL索引是啥?不懂就问
2021/07/21 MySQL