实现公告栏无缝滚动的js代码(转)「建议收藏」

实现公告栏无缝滚动的js代码(转)「建议收藏」<!DOCTYPEHTML><html><head><metacharset="gb2312"/><title&

大家好,又见面了,我是你们的朋友全栈君。

<!DOCTYPE HTML>
<html>
    <head>
        <meta charset="gb2312" />
        <title></title>       
        <style>
            ul {
                margin:100px;
                height:22px; 
                border:1px solid red;
                overflow:hidden;
            }
            li {
                height:22px; line-height:22px; font-size:12px;
            }
        </style>       
    </head>
    <body>
        <ul id="a">
            <li>1-1</li>
            <li>1-2</li>
            <li>1-3</li>
            <li>1-4</li>
        </ul>
        <script>
            //document.getElementById()的最简化应用
            function $(element){
                if(arguments.length>1){
                    for(var i=0,length=arguments.length,elements=[];i<length;i++){
                        elements.push($(arguments[i]));
                    }
                    return elements;
                }
                if(typeof element=="string"){
                    return document.getElementById(element);
                }else{
                    return element;
                }
            }
            //类创建函数
            var Class={
                create:function(){
                    return function(){
                        this.initialize.apply(this,arguments);
                    }
                }
            }
            //对象属性方法扩展
            Function.prototype.bind=function(object){
                var method=this;
                return function(){
                    method.apply(object,arguments);
                }
            }
            var Scroll=Class.create();
            Scroll.prototype={
                //第一个参数定义要滚动的区域,第二个参数定义每次滚动的高度
                initialize:function(element,height,delay){
                    this.element=$(element);
                    this.element.innerHTML+=this.element.innerHTML;
                    this.height=height;
                    this.delay=delay*1000;
                    this.maxHeight=this.element.scrollHeight/2;
                    this.counter=0;
                    this.scroll();
                    this.timer="";
                    this.element.onmouseover=this.stop.bind(this);
                    this.element.onmouseout=function(){this.timer=setTimeout(this.scroll.bind(this),1000);}.bind(this);
                },
                scroll:function(){
                    if(this.element.scrollTop<this.maxHeight){
                        this.element.scrollTop++;
                        this.counter++;
                    }else{
                        this.element.scrollTop=0;
                        this.counter=0;
                    }
                     
                    if(this.counter<this.height){
                        this.timer=setTimeout(this.scroll.bind(this),5);
                    }else{
                        this.counter=0;
                        this.timer=setTimeout(this.scroll.bind(this),this.delay);
                    }
                },
                stop:function(){
                    clearTimeout(this.timer);
                }
            }
            new Scroll('a', 22, 2)
        </script>
    </body>
</html>

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/154586.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • python中怎么替换字符串中的内容_python怎么替换字符串的内容「建议收藏」

    python中怎么替换字符串中的内容_python怎么替换字符串的内容「建议收藏」Python中replace()函数把字符串中的old(旧字符串)替换成new(新字符串),如果指定第三个参数max,则替换不超过max次。replace()函数语法:str.replace(old,new[,max])参数:old–将被替换的子字符串。new–新字符串,用于替换old子字符串。max–可选字符串,替换不超过max次。返回值:返回字符串中的o…

    2022年5月9日
  • 2018.3.17 模拟赛——(2)删数

    2018.3.17 模拟赛——(2)删数

    2022年3月13日
  • dell服务器安装Ubuntu16.04桌面版(系统安装程序找不到磁盘,无法分区)「建议收藏」

    dell服务器安装Ubuntu16.04桌面版(系统安装程序找不到磁盘,无法分区)「建议收藏」前言前段时间笔者所在的公司服务器突然硬盘挂了,”剧情”需要,笔者担当起了运维的角色,自行在新到的硬盘安装系统,搭建服务器环境…p.s.笔者因为工作需要,在服务器上安装了Ubuntu16.04的桌面版。因为有时候确实很需要图形界面的Linux系统。2333本文仅供有系统安装的经验的同学参考…正文这里废话不多说,桌面版的Ubuntu(后面简称桌板)的和服务器版的Ubuntu(后面简称服版)对于普通电脑来说,安装方式都一样,那么对于服务器来说,桌版和服版来说,安装方式略有不同(这里后面会说到),但工具还

    2022年10月31日
  • 几何菱形包是什么牌子_菱形数学

    几何菱形包是什么牌子_菱形数学首页题库状态天梯课程比赛排行榜武则天 题目描述我的提交所有提交换下一题10049:凯的菱形时间限制:1000MS内存限制:131072KB提交总数:36AC总数:20问题描述打完一波农药,安琪拉感叹道:凯呀凯,你真是又帅又厉害!!!凯是真帅,他的菱形也是帅:最外层是字母A,然后里一层是B,再里一层是C。。。输入格式第一行输入整数n(1&lt…

    2022年9月1日
  • Python 如何理解又晕又好用的装饰器

    Python 如何理解又晕又好用的装饰器

    2021年9月17日
  • awvs使用方法_一般人游50米要多久

    awvs使用方法_一般人游50米要多久Awvs的是一款非常好用的web漏洞扫描工具,他的扫描速度比较快,可以自己选择扫描速度,比较灵活。Awvs分为老的版本和新版本,下面我介绍的是新版本的功能和用法。功能介绍如下:仪表盘(监视器)功能,添加目标功能,漏洞排序功能,扫描功能,发现功能,用户功能,扫描配置功能,网络扫描功能,追踪器功能,防火墙设置,邮件设置,引擎,时间排除功能,代理功能,常规设置主要使用的功能是前面的6个,后面的根据个人的需要进行配置详细介绍如下:Dashboard功能:翻译意思仪表盘(监视器),可以对扫描对扫描

    2022年9月22日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号