`
ganglong99
  • 浏览: 161364 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

JS上下无缝滚动效果

阅读更多

JS上下无缝滚动效果:

可自定义每次滚动的px量,滚动的方向(上或者下),滚动速度。

<?xml version="1.0" encoding="UTF-8" ?>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!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-Type" content="text/html; charset=UTF-8" />
<title>scrollTop测试示例</title>

<style>
<!--
#out {
	width:200px;
	height:80px;
	border:solid 1px blue;
	overflow:hidden;
}
#in ul {
	width: 100%;
}
#in ul li {
	width: 60%;
	float: left;
	overflow: hidden;
	list-style: none;
}
-->
</style>
</head>
<body>
<div id="out">
	<div id="in">
		<ul>
			<li>第1行</li>
			<li>第2行</li>
			<li>第3行</li>
			<li>第4行</li>
			<li>第5行</li>
		</ul>
		<div style="clear: both;"></div>
	</div>
</div>
</body>
</html>

 

在body中插入如下JS代码:

 

<script type="text/javascript">
var $ = function(id) {
	return "string" == typeof id ? document.getElementById(id) : id;
};
// 实例化一个对象并调用对象的initialize方法
var Class = {
	create : function() {
		return function() {
			this.initialize.apply(this, arguments);
		};
	}
};
// 为Object添加一个extend方法
Object.extend = function(destination, source) {
	for ( var property in source) {
		destination[property] = source[property];
	}
	return destination;
};
// 为对象注册事件
var addEventHandler = function(oTarget, sEventType, fnHandler) {
	if (oTarget.addEventListener) {
		oTarget.addEventListener(sEventType, fnHandler, false);
	} else if (oTarget.attachEvent) {
		oTarget.attachEvent("on" + sEventType, fnHandler);
	} else {
		oTarget["on" + sEventType] = fnHandler;
	}
};
var Scroll = Class.create();
Scroll.prototype = {
	initialize : function(outObj, inObj, options) {
		var oScroll = this;
		var iOut = $(outObj);
		var iIn = $(inObj);
		this.outHeight = iOut.offsetHeight;
		this.inHeight = iIn.offsetHeight;

		if (this.outHeight >= this.inHeight) return;

		iOut.style.overflow = "hidden";
		iIn.appendChild(iIn.cloneNode(true));

		this.setOptions(options);
		this.outObj = iOut;
		this.timer = null;

		this.side = 1; // 1:向上;2:向下
		switch(this.options.side) {
			case "down" :
				this.side = -1;
				break;
			case "up":
			default:
				this.side = 1;
		}
		addEventHandler(iIn, "mouseover", function() {oScroll.stop();});
		addEventHandler(iIn, "mouseout", function() {oScroll.start();});
		this.start();
	},
	setOptions : function(options) {
		this.options = {
			step : 1, // 每次滚动的px量
			side : "up", // 滚动的方向
			time : 10 // 滚动的间隔时间(滚动速度)
		};
		Object.extend(this.options, options || {});
	},
	scroll : function() {
		var inHeight = this.inHeight, outHeight = this.outHeight, iStep = this.options.step * this.side, time = this.options.time;
		var iScrollTop = this.outObj.scrollTop;
		if (iScrollTop >= (inHeight * 2 - outHeight)) {
			iScrollTop -= inHeight;
		} else if (iScrollTop <= 0) {
			iScrollTop += inHeight;
		}		
		this.outObj.scrollTop = iScrollTop + iStep;
		
		var oScroll = this;
		this.timer = setTimeout(function() {oScroll.scroll();}, time);
	}, 
	start : function() {
		this.scroll();
	},
	stop : function() {
		clearTimeout(this.timer);
	}
};
window.onload = function() {
	new Scroll("out", "in", {step : 1, side : "up", time : 20});
};
</script>

 

分享到:
评论
6 楼 faylai 2010-02-21  
binlaniua 写道
晕  又见JS 大神...

看到 $, extend, Class的用法

你是不是有个专门的博客啊~~

地址能发下吗


prototype.js
5 楼 xiaoxie2007 2010-02-20  
不错,学习了
4 楼 binlaniua 2010-02-14  
晕  又见JS 大神...

看到 $, extend, Class的用法

你是不是有个专门的博客啊~~

地址能发下吗
3 楼 yaoneng 2010-02-12  
不错,学习学习~
2 楼 rainsilence 2010-02-10  
你可以试一下1->2->3->4->5->1->2->3->4->5这样的顺序。
用appendChild
1 楼 rainsilence 2010-02-10  
<?xml version="1.0" encoding="UTF-8" ?> 
<%@ page language="java" contentType="text/html; charset=UTF-8" 
    pageEncoding="UTF-8"%> 
请删除。。。

var Class = { 
    create : function() { 
        return function() { 
            this.initialize.apply(this, arguments); 
        }; 
    } 
};
这个经典啊。。。。

相关推荐

    JS上下无缝滚动效果JS上下无缝滚动效果

    JS上下无缝滚动效果JS上下无缝滚动效果JS上下无缝滚动效果

    js表格无缝滚动效果

    为了提供更好的用户体验,可以采用JavaScript(js)来实现表格的无缝滚动效果,让表格像一个无边界的容器一样平滑滚动。这种效果在大数据量的展示或者长表格中尤其有用,它能让用户更容易地浏览和查找信息。 首先,...

    jQuery实现网站中公告上下无缝滚动,marquee

    至此,一个简单的公告上下无缝滚动效果就实现了。如果你希望实现高度不一致的无缝滚动,那么需要对每个公告项单独处理,这涉及到更复杂的计算和动画调整,可能需要使用CSS3的`transform`属性和JavaScript的定时器来...

    JavaScript 无缝上下滚动加定高停顿效果

    本段代码展示了一个利用JavaScript实现的无缝上下滚动效果,同时在达到特定高度时会暂停一段时间。这种效果常见于网站中的滚动广告条或者新闻滚动区域等场景,能够有效吸引用户的注意力,提高用户体验。 ### 二、...

    javascript实现的上下无缝滚动效果

    基于给定文件内容,以下是关于javascript实现上下无缝滚动效果的知识点: 1. 无缝滚动效果的概念 无缝滚动是指在网页中实现的一种滚动效果,内容列表在到达一定位置后可以连续无间断地循环滚动。这种效果常用于网站...

    js原生图片上下无缝滚动

    以上就是使用原生JavaScript实现图片上下无缝滚动的基本方法。通过结合HTML、CSS和JavaScript,我们可以创建出一个动态、流畅的滚动效果,为网页增添更多趣味性和交互性。在实际应用中,还可以根据项目需求进行...

    JS控制图片上下无缝滚动特效代码

    在网页设计中,图片的上下无缝滚动效果可以增加视觉吸引力,为用户提供更丰富的浏览体验。这种效果常见于网站的轮播图或者背景滚动中,能够使多张图片连续、平滑地展现,给用户带来连续不断的感觉。 要实现JS控制...

    jquery文字上下无缝滚动

    **jQuery文字上下无缝滚动** 在网页设计中,为了吸引用户的注意力或者展示大量信息,我们经常需要使用滚动效果。"jQuery文字上下无缝滚动"是一种常见的网页动态效果,它可以使文字或内容在页面上持续滚动,给予用户...

    javascript上下无缝图片滚动

    JavaScript 上下无缝图片滚动是一种常见的网页动态效果,用于展示一系列图片,给用户带来更丰富的视觉体验。这种技术常被应用于产品展示、轮播广告或图片画廊等场景,如糯米网的产品展示。在这个效果中,图片会按照...

    图片无缝滚动插件上下左右图片无缝滚动代码.zip

    1. **JavaScript基础**:无缝滚动效果主要依赖JavaScript来实现,这是一种客户端脚本语言,用于增强网页的交互性。在浏览器环境中,JavaScript可以动态修改HTML和CSS,实现各种动态效果。 2. **DOM操作**:...

    marquee图片无缝滚动(上下左右均可)

    2. **无缝滚动**:通过调整`&lt;marquee&gt;`的属性,如`scrollamount`(滚动速度)、`direction`(滚动方向)和`loop`(循环次数),可以实现无缝滚动效果。使用JavaScript库或插件可以更好地控制这些参数,以实现更流畅...

    jQuery实现网站中公告上下无缝滚动,marquee(每条广告之间的高度无需一致)

    本文将详细讲解如何使用jQuery实现一个广告上下无缝滚动的效果,其中每个广告的高度可以不一致,提供更高的灵活性。 首先,我们需要了解`marquee`标签。在HTML中,`&lt;marquee&gt;`是一个非标准但广泛使用的元素,用于...

    jquery图片无缝滚动代码左右上下无缝滚动图片

    无缝滚动的核心在于通过JavaScript控制图片在视觉上形成连续的滚动效果,即使图片在用户视线中“消失”后,立即加载下一张图片,使滚动过程看起来没有中断。这主要通过设置合适的定时器、计算图片的位置变化以及动态...

    很炫的图片无缝上下滚动效果.rar

    4. **js** - 这个文件夹可能包含了实现无缝滚动效果的JavaScript源代码。可能有一个或多个.js文件,比如一个主函数文件和可能的辅助函数或库。 这个资源包的使用方法可能包括打开`index.html`在浏览器中查看效果,...

    head first 一起实现js无缝上下滚动效果

    无缝滚动效果主要涉及以下几个核心知识点: 1. **JavaScript基础**:首先,你需要掌握JavaScript的基础语法,包括变量声明、数据类型、控制流程(如if语句、for循环)以及函数的使用。这是编写任何JavaScript代码的...

    js文字无缝滚动(可控制方向)

    在本文中,我们将深入探讨如何使用JavaScript实现文字的无缝滚动效果,并且能够控制滚动的方向,包括上下左右四个方向。这种效果常用于网站头部新闻滚动、公告展示等场景,能够有效地吸引用户的注意力。 首先,我们...

    js轮播无缝滚动

    JavaScript(简称JS)轮播无缝滚动是一种常见的网页动态效果,常用于展示图片、文本或其它内容,以有限的空间展示无限的信息。这种技术可以为用户提供更丰富的交互体验,使其能够在不离开当前页面的情况下浏览多张...

    文字上下无缝滚动

    在网页设计中,动态效果是吸引用户注意力的重要手段之一,其中文字上下无缝滚动的效果尤其常见。这种效果使得页面上的文字信息能持续流动,为用户提供一种动态的阅读体验。本篇文章将详细探讨如何使用纯JavaScript来...

Global site tag (gtag.js) - Google Analytics