Js实现内容向上无缝循环滚动

当前项目有一个类似公告向上滚动的需求,在网上搜索到一个比较棒的程序,现摘录如下:

//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, 1) //适当调整第2和第3个参数呈现效果稍有差异

对应Html和Css如下:

ul {margin:100px;height:22px; border:1px solid red;overflow:hidden;
}
li {height:22px; line-height:22px; font-size:12px;
}<ul id="a"><li>1-1</li><li>1-2</li><li>1-3</li><li>1-4</li>
</ul>

在使用上面示例程序过程中注意下面这个自定义行为可能会与jQuery或其他Js库或程序发生命名冲突

function $(element) {
  ......
}

解决方案1:将function $(element){......}重新命名
解决方案2:对于引入了jQuery库的项目,可用jQuery.noConflict()方法让渡变量$的jQuery控制权

转载于:https://www.cnblogs.com/Arlar/p/5630115.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/372736.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Repeater 中TextBox 触发TextChanged事件

两种方法 1.TextBox 绑定TextChanged 并设置AutoPostBack "true" &#xff0c;如果不设置AutoPostBack "true"则不会触发TextChanged事件&#xff0c;然后在对应的方法里面循环Repeater查找改变项 部分代码 <ItemTemplate ><tr><td style &…

什么是Spring Integration?

随着Spring Integration项目逐渐获得越来越多的采用和兴趣&#xff0c;企业集成或企业开发领域的开发人员很可能会遇到它。 他们可能会发现它很有趣&#xff0c;但并没有完全理解它的含义&#xff0c;所要解决的问题&#xff0c;可以从中获取更多信息以及它在ESB和其他SOA基础结…

java jmap mat_java内存调优之jmap,jstack,mat

查看整个JVM内存状态jmap -heap [pid]要注意的是在使用CMS GC 情况下&#xff0c;jmap -heap的执行有可能会导致JAVA 进程挂起查看JVM堆中对象详细占用情况jmap -histo [pid]可以通过jmap -histo [pid] | head -20查看top20的实例个数以及内存占用情况导出整个JVM 中内存信息&a…

lftp

-f&#xff1a;指定lftp指令要执行的脚本文件&#xff1b; -c&#xff1a;执行指定的命令后退出&#xff1b; --help&#xff1a;显示帮助信息&#xff1b; --version&#xff1a;显示指令的版本号。下载 get当然是可以的&#xff0c;还可以&#xff1a; mget -c *.pdf #把所有…

Apache Shiro第1部分–基础

Apache Shiro &#xff08;最初称为JSecurity&#xff09;是Java安全框架。 它被接受并于2010年成为Apache顶级项目。它的目标是功能强大且易于使用。 该项目正在积极开发中&#xff0c;用户和开发人员的邮件列表均处于活动状态。 最重要的区域记录在其网页上。 但是&#xff0…

javascript 之Object内置对象

Object.defineProperty(obj, prop, descriptor)转载于:https://www.cnblogs.com/lihuali/p/5632460.html

java员工编号程序_用JAVA编写一个employee类 为员工自动产生员工号

差不多就是这个感觉..class Employee {/*** param args*/private int number;private String name;private String birthday;static int IDnumber0;public Employee(String name,String birthday){IDnumber;this.setNumber(IDnumber);this.setName(name);this.setBirthday(birt…

分解质因数-洛谷P3200 [HNOI2009]有趣的数列

https://www.luogu.org/problem/show?pid3200 首先&#xff0c;我们不能保证要求的数的逆元和模域互质&#xff1b; 所以我们要用分解质因数来抵消除法&#xff1b; 其实逆元的话即使可行也会超时&#xff1b; 那么我转载了&#xff0c;实在没什么可以说的&#xff1b; 另…

Java中的安全加密

上一次我写关于密码学的文章时 &#xff0c;我概述了Apache Shiro加密API&#xff0c;并展示了如何使用其两个对称密码。 我还写道&#xff1a;“您不需要在应用程序中对敏感数据进行加密和解密。” 我了解了更多有关密码的知识&#xff0c;发现您需要了解更多信息。 我写的内容…

真机调试问题

1.拔掉插头重新插入 2.转载于:https://www.cnblogs.com/sanvow/p/5633976.html

vsftp

它的配置文件在/etc/vsftpd/vsftpd.conf在里面加入 anonymous_enableYES &#xff03;允许匿名用户登录FTPanon_upload_enableYES &#xff03;打开匿名用户的上传权限anon_mkdir_write_enableYES &#xff03;打开匿名用户创建目录的权限anon_other_write_enableYES …

java scrollpane源码_JScrollPane用法 Java实例

时间&#xff1a;2019-10-07概述&#xff1a;JScrollPane 滚动条在Java中使用JScrollPane的例子&#xff0c;特别是滚动条的设置等&#xff0c;程序代码中将设置水平与垂直表头、设置scrollPane的边角图案、设置scrollPane的边框凹陷立体边框。适时水平滚动轴的参数设置等内容&…

ANTLR教程– Hello Word

Antlr代表另一种语言识别工具。 该工具能够为任何计算机语言生成编译器或解释器。 除了明显的用途&#xff08;例如需要解析一种真正的“大型”编程语言&#xff0c;例如Java&#xff0c;PHP或SQL&#xff09;外&#xff0c;它还可以帮助执行更小&#xff0c;更常见的任务。 每…

centOS 6.5安装python和nginx

一、安装python3.5 1、安装python3.5 2、安装pip并升级到最新 下载wget --no-check-certificate https://github.com/pypa/pip/archive/1.5.5.tar.gz 注意&#xff1a;wget获取https的时候要加上&#xff1a;--no-check-certificate tar zvxf 1.5.5.tar.gz #解压文件 cd pip…

rabbitmq 学习-9- RpcClient发送消息和同步接收消息原理

rabbitmq 学习-9- RpcClient发送消息和同步接收消息原理 转载于:https://www.cnblogs.com/gotodsp/p/6532824.html

汇编写java模块_java – maven汇编插件moduleset源指令不包括任何文件,不符合附带的模块...

我有一个多模块的maven项目,我正在尝试获取组件插件的moduleset源部分.我有模块“module_parent”,“module_a”和“module_assembly”.module_a和module_assembly是module_parent的子项.module_assembly对module_a有一个声明的pom依赖关系.module_assmebly具有程序集插件,asse…

用于RIA的JavaFX 2与HTML5

这些天来&#xff0c;我们正在启动一个新项目&#xff0c;以实现Rich Internet Application&#xff08;RIA&#xff09; 。 第一个问题是&#xff1a;我们应该使用哪些技术和框架&#xff1f; 后端将是Java或其他现代JVM语言&#xff0c;因为我们主要是经验丰富的Java开发人员…

插件化编程实现的一份糖炒栗子~~

迷茫的原因是因为想得太多&#xff0c;做得太少。因为只是 想 真的很容易&#xff0c;转瞬之间就会产生无数个念头&#xff0c;或许是该做点什么了吧。 但是整个人都是懒的&#xff0c;是废的&#xff0c;是大脑控制不住自己的行为的。解决方案唯有一步一步的去把行为变成习惯。…

用C#来学习唐诗三百首和全唐诗

Begin 最近把项目做完了&#xff0c;闲来无事&#xff0c;就想做点好玩的事情&#xff0c;刚好前几天下载了【唐诗三百首】和【全唐诗】这两个txt文件&#xff0c;正好用C#来整理一下。 然后导出QData格式&#xff0c;可以给其他软件读取。 以后弄个开机自动显示一句诗&#xf…

JRockit JRCMD教程

本文将为您提供概述和教程&#xff0c;说明如何使用jrcmd工具对JRockit Java Heap问题进行初始分析和问题隔离。 将来的文章中将介绍使用JRockit任务控制和堆转储分析&#xff08;仅限JRockit R28 版&#xff09;的更深入的分析和教程。 有关JRockit Java堆空间的快速概述&…