实现公告栏无缝滚动的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)
上一篇 2022年7月1日 下午5:46
下一篇 2022年7月1日 下午6:00


相关推荐

  • java卸载dll,如何在java中卸载Dll?[通俗易懂]

    java卸载dll,如何在java中卸载Dll?[通俗易懂]IhavewrittenaJavaagentinLotusNotes8.5toresettoken’sPINusingIAIKPKCS11wrapper.Whentheagentisloadedforthefirsttimeitworkedfine.ButafterIcloseandrestarttheagentthenitf…

    2022年5月19日
    82
  • 时间单位换算表

    时间单位换算表 时间单位换算表   1毫秒=1/1,000秒(s)               1秒=1000毫秒(ms)1微秒(μs)=1/1,000,000秒(s)    1秒=1,000,000微秒(μs)1纳秒=1/1,000,000,000秒(s)       1秒=1,000,000,000纳秒(ns)1皮秒=1/1,000,000,000,000秒(s) 

    2022年7月11日
    44
  • 评分卡建模流程

    评分卡建模流程基于 Logistic 回归的申请评分卡模型开发基本申请评分卡建模流程 1 数据准备 收集并整合在库客户的数据 定义目标变量 排除特定样本 2 探索性数据分析 评估每个变量的值分布情况 处理异常值和缺失值 3 数据预处理 变量筛选 变量分箱 WOE 转换 样本抽样 4 模型开发 逻辑回归拟合模型 5 模型评估 常见几种评估方法 ROC KS 等 6 生成评分卡 1 数据准备因为不同评级模型所需要的数据也是不

    2026年3月17日
    3
  • QGIS 3.10 路径分析

    QGIS 3.10 路径分析网络数据集(networks)的创建、管理和可视化是GIS的重要组成部分。公路、铁路、管线等公用基础设施都可以建模为由线和节点组成的带有属性信息的网络数据。本教程将学习如何对路网进行建模,如何运用样式对路网属性可视化,同时通过QGIS3.10内置的路径分析工具找出两点之间的最短路径。任务概述通过华盛顿地区道路中心线图层,建立路网并查找城市中任意两点之间的最短路径。将会学到的其他技巧使用数据定义覆盖(datadefinedoverrides),根据线的方向对齐箭头符号。获取示范数据本教程

    2022年8月24日
    12
  • web服务器有哪几种语言组合_服务器

    web服务器有哪几种语言组合_服务器  如今的Web服务器有很多种,大家在做项目的时候根据自己的需求进行灵活的选择。下面小编就给大家分享一下目前都有哪些Web服务器。  1.Apache  Apache也被叫做httpd服务器,是目前使用最广泛的web服务器,它被应用于各种平台之中。Apache刚开始被推出的时候有很多的缺陷,如今已经被修复的越来越完善,如果你是web服务器的钻研者,小编建议你一定要学习一下Apache的使用。  2.Nginx  Nginx是Linux平台下的优秀Web服务器,小编以前用过这个服务器,它…

    2026年1月27日
    5
  • java锁cas(java锁的实现原理)

    一、Java锁1.常见的锁有synchronized和Lock()①synchronized是jvm层面实现的,可以直接用,不过要锁住某个对象;lock是属于j.u.c包下的接口,用的时候要实现lock接口。②synchronized一般和wait()、notify()、notifyAll()一起使用,使用完不用释放锁;lock必须在finally里面手动释放。@lock锁与s…

    2022年4月15日
    56

发表回复

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

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