自己做的几个Slide简单效果

最近在忙于毕业设计,因为平时我是后台开发的,这次前台也要自己搞,像我这样前台设计烂到渣的果然不会爱了。

刚刚要用到首页Slide效果,自己去网上学了一下,下面分享一下我的代码。

首先是最简单的两种效果:左右滑动和上下滑动。

html 代码:

<html>
	<head>
		<meta charset="utf-8" />
		<script type="text/javascript" src="jquery.js"></script>
		<script type="text/javascript" src="slider.js"></script>
		<link rel="stylesheet" type="text/css" href="style.css" />
		<title>slide</title>
	</head>

	<body>
		<!-- Scheme1 -->
		<!-- big_frame(1,2,3,4) -->
		<!-- big_list(1,2,3,4) -->
		<div id="big_frame" class="frame">
			<ul id="big_list" class="list">
				<li style="background-color: #000000;">aa</li>
				<li style="background-color: #ff0000;">bb</li>
				<li style="background-color: #00ff00;">cc</li>
				<li style="background-color: #0000ff;">dd</li>
				<li style="background-color: #ff00ff;">ee</li>
			</ul>
		</div>
		<br />
		<!-- back(1,2,3,4) -->
		<!-- small_frame(1,2,3,4) -->
		<!-- small_list(1,2,3,4) -->
		<!-- slide_nav(1,2) -->
		<!-- l_frame(1,2) -->
		<a id="back" class="slide_nav" href="#">left</a>
		<div id="small_frame" class="l_frame">
			<ul id="small_list" class="list">
				<li class="cur" style="background-color: #000000;">aa</li>
				<li style="background-color: #ff0000;">bb</li>
				<li style="background-color: #00ff00;">cc</li>
				<li style="background-color: #0000ff;">dd</li>
				<li style="background-color: #ff00ff;">ee</li>
			</ul>
		</div>
		<!-- forward(1,2,3,4) -->
		<!-- slide_nav(1,2) -->
		<a id="forward" class="slide_nav" href="#">right</a>
		<br />
		<br />

		<!-- Scheme2 -->
		<div id="big_frame2" class="frame">
			<ul id="big_list2" class="list">
				<li style="background-color: #000000;">aa</li>
				<li style="background-color: #ff0000;">bb</li>
				<li style="background-color: #00ff00;">cc</li>
				<li style="background-color: #0000ff;">dd</li>
				<li style="background-color: #ff00ff;">ee</li>
			</ul>
		</div>
		<br />
		<a id="back2" class="slide_nav" href="#">left</a>
		<div id="small_frame2" class="l_frame">
			<ul id="small_list2" class="list">
				<li class="cur" style="background-color: #000000;">aa</li>
				<li style="background-color: #ff0000;">bb</li>
				<li style="background-color: #00ff00;">cc</li>
				<li style="background-color: #0000ff;">dd</li>
				<li style="background-color: #ff00ff;">ee</li>
			</ul>
		</div>
		<a id="forward2" class="slide_nav" href="#">right</a>
		<br />
		<br />

		<!-- Scheme3 -->
		<div style="float: left;">
			<div id="big_frame3" class="frame">
				<ul id="big_list3" class="list">
					<li style="background-color: #000000;">aa</li>
					<li style="background-color: #ff0000;">bb</li>
					<li style="background-color: #00ff00;">cc</li>
					<li style="background-color: #0000ff;">dd</li>
					<li style="background-color: #ff00ff;">ee</li>
				</ul>
			</div>
		</div>
		<div style="float: left;">
			<a id="back3" class="slide_nav2" href="#">left</a>
			<div id="small_frame3" class="l_frame2">
				<ul id="small_list3" class="list">
					<li class="cur" style="background-color: #000000;">aa</li>
					<li style="background-color: #ff0000;">bb</li>
					<li style="background-color: #00ff00;">cc</li>
					<li style="background-color: #0000ff;">dd</li>
					<li style="background-color: #ff00ff;">ee</li>
				</ul>
			</div>
			<a id="forward3" class="slide_nav2" href="#">right</a>
		</div>
		<br />
		<br />

		<!-- Scheme4 -->
		<div style="float: left;">
			<div id="big_frame4" class="frame">
				<ul id="big_list4" class="list">
					<li style="background-color: #000000;">aa</li>
					<li style="background-color: #ff0000;">bb</li>
					<li style="background-color: #00ff00;">cc</li>
					<li style="background-color: #0000ff;">dd</li>
					<li style="background-color: #ff00ff;">ee</li>
				</ul>
			</div>
		</div>
		<div style="float: left;">
			<a id="back4" class="slide_nav2" href="#">left</a>
			<div id="small_frame4" class="l_frame2">
				<ul id="small_list4" class="list">
					<li class="cur" style="background-color: #000000;">aa</li>
					<li style="background-color: #ff0000;">bb</li>
					<li style="background-color: #00ff00;">cc</li>
					<li style="background-color: #0000ff;">dd</li>
					<li style="background-color: #ff00ff;">ee</li>
				</ul>
			</div>
			<a id="forward4" class="slide_nav2" href="#">right</a>
		</div>
		<br />
		<br />

	</body>
</html>

接下来是 js 代码:

$(function() {
	//初始化
	function C_slider(frame, list, Lframe, Llist, forwardEle, backEle, scrollType, LscrollType, acitonType, autoInterval) {
		this.frame = frame;
		this.list = list;
		this.Lframe = Lframe;
		this.Llist = Llist;
		this.forwardEle = forwardEle;
		this.backEle = backEle;
		this.scrollType = scrollType;
		this.LscrollType = LscrollType;
		this.acitonType = acitonType;
		this.autoInterval = autoInterval;

		this.slideLength = $("#" + this.Llist + " > li").length;//总的slider数量
		this.currentSlide = 0;//当前
		this.FrameHeight = $("#" + this.frame).height();
		this.FrameWidth = $("#" + this.frame).width();
		this.lFrameHeight = $("#" + this.Lframe).height();
		this.lFrameWidth = $("#" + this.Lframe).width();
		this.lListHeight = $("#" + this.Llist + " >li").eq(0).outerHeight(true);
		this.lListWidth = $("#" + this.Llist + " >li").eq(0).outerWidth(true);

		var self = this;

		for (var i = 0; i < this.slideLength; i++) {
			$("#" + this.Llist + " > li").eq(i).data("index", i);
			$("#" + this.Llist + " > li").eq(i).bind(this.acitonType, function() {
				self.go($(this).data("index"));
			});
		};

		//给"上一个", "下一个"按钮添加动作
		$("#" + this.forwardEle).bind('click', function() {
			self.forward();
			return false;
		});
		$("#" + this.backEle).bind('click', function() {
			self.back();
			return false;
		});

		//鼠标划过时, 自动轮换的处理
		$("#" + this.frame + ",#" + this.Lframe + ",#" + this.forwardEle + ",#" + this.backEle).bind('mouseover', function() {
			clearTimeout(self.autoExt);
		});

		$("#" + this.frame + ",#" + this.Lframe + ",#" + this.forwardEle + ",#" + this.backEle).bind('mouseout', function() {
			clearTimeout(self.autoExt);
			self.autoExt = setTimeout(function() {
				self.extInterval();
			}, self.autoInterval);
		});

		//开始自动轮换
		this.autoExt = setTimeout(function() {
			self.extInterval();
		}, this.autoInterval);
	}
	//执行运动
	C_slider.prototype.go = function(index) {
		this.currentSlide = index;
		if (this.scrollType == "left"){
			$("#"+this.list).animate({
				marginLeft: (-index*this.FrameWidth) + "px"
			}, {duration: 600, queue: false});
		} else if (this.scrollType == "top"){
			$("#" + this.list).animate({
				marginTop: (-index * this.FrameHeight) + "px"
			}, {duration: 600, queue: false});
		}

		$("#" + this.Llist + " > li").removeClass("cur");
		$("#" + this.Llist + " > li").eq(index).addClass("cur");

		//对于缩略图的滚动处理
		if (this.LscrollType == "left"){
			if (this.slideLength * this.lListWidth > this.lFrameWidth){
				var spaceWidth = (this.lFrameWidth - this.lListWidth) / 2;
				var hiddenSpace = this.lListWidth * this.currentSlide - spaceWidth;

				if (hiddenSpace > 0){
					if (hiddenSpace + this.lFrameWidth <= this.slideLength * this.lListWidth){
						$("#" + this.Llist).animate({
							marginLeft: -hiddenSpace + "px"
						}, {duration: 600, queue: false});
					} else {
						var endHidden = this.slideLength * this.lListWidth - this.lFrameWidth;
						$("#" + this.Llist).animate({
							marginLeft: -endHidden + "px"
						}, {duration: 600, queue: false});
					}
				} else {
					$("#" + this.Llist).animate({
						marginLeft: "0px"
					}, {duration: 600, queue: false});
				}
			}

		} else if (this.LscrollType == "top"){
			if (this.slideLength * this.lListHeight > this.lFrameHeight){
				var spaceHeight = (this.lFrameHeight - this.lListHeight) / 2;
				var hiddenSpace = this.lListHeight * this.currentSlide - spaceHeight;

				if (hiddenSpace > 0){
					if (hiddenSpace + this.lFrameHeight <= this.slideLength * this.lListHeight){
						$("#" + this.Llist).animate({
							marginTop: -hiddenSpace + "px"
						}, {duration: 600, queue: false});
					} else {
						var endHidden = this.slideLength * this.lListHeight - this.lFrameHeight;
						$("#" + this.Llist).animate({
							marginTop: -endHidden + "px"
						}, {duration: 600, queue: false});
					}
				} else {
					$("#" + this.Llist).animate({
						marginTop: "0px"
					}, {duration: 600, queue: false});
				}
			}
		}

	}
	//前进
	C_slider.prototype.forward = function() {
		if (this.currentSlide < this.slideLength - 1){
			this.currentSlide += 1;
			this.go(this.currentSlide);
		} else {
			this.currentSlide = 0;
			this.go(0);
		}
	}
	//后退
	C_slider.prototype.back = function() {
		if (this.currentSlide > 0){
			this.currentSlide -= 1;
			this.go(this.currentSlide);
		} else {
			this.currentSlide = this.slideLength - 1;
			this.go(this.slideLength - 1);
		}
	}
	//自动执行
	C_slider.prototype.extInterval = function() {
		if (this.currentSlide < this.slideLength - 1){
			this.currentSlide += 1;
			this.go(this.currentSlide);
		} else {
			this.currentSlide = 0;
			this.go(0);
		}

		var self = this;
		this.autoExt = setTimeout(function() {
			self.extInterval();
		}, this.autoInterval);
	}
	//实例化对象
	var goSlide1 = new C_slider("big_frame", "big_list", "small_frame", "small_list", "forward", "back", "left", "left", "click", 3000);
	var goSlide2 = new C_slider("big_frame2", "big_list2", "small_frame2", "small_list2", "forward2", "back2", "top", "left", "click", 5000);
	var goSlide3 = new C_slider("big_frame3", "big_list3", "small_frame3", "small_list3", "forward3", "back3", "left", "top", "click", 3000);
	var goSlide4 = new C_slider("big_frame4", "big_list4", "small_frame4", "small_list4", "forward4", "back4", "top", "top", "click", 2000);
})

最后是 css 代码:

br {clear: both;}
.frame {
	width: 600px;
	height: 240px;
	background-color: #CCC;
	overflow: hidden;
}
.frame .list {
	list-style: none;
	padding: 0;
	margin: 0;
	width: 10000px;
}
.frame .list li {
	width: 600px;
	height: 240px;
	float: left;
}
.frame #big_list2 {
	height: 10000px;
}
.frame #big_list2 li {
	clear: both;
}
.frame #big_list4 {
	height: 10000px;
}
.frame #big_list4 li {
	clear: both;
}

.l_frame {
	width: 260px;
	height: 80px;
	background-color: #CCC;
	overflow: hidden;
	float: left;
}
.l_frame .list {
	list-style: none;
	padding: 0;
	margin: 0;
	width: 10000px;
}
.l_frame .list li {
	float: left;
	width: 76px;
	height: 76px;
	cursor: pointer;
	border: solid 2px #cc3910;
}
.l_frame .list .cur {
	border: solid 2px #FFFFFF;
}
.l_frame2 {
	height: 208px;
	width: 80px;
	background-color: #CCC;
	overflow: hidden;
}
.l_frame2 .list {
	list-style: none;
	padding: 0;
	margin: 0;
	height: 10000px;
}
.l_frame2 .list li {
	width: 76px;
	height: 76px;
	cursor: pointer;
	border: solid 2px #cc3910;
}
.l_frame2 .list .cur {
	border: solid 2px #FFFFFF;
}

.slide_nav {
	width: 16px;
	height: 80px;
	display: block;
	float: left;
	background-color: #2A0;
	text-indent: -10000px;
}
.slide_nav2 {
	width: 80px;
	height: 16px;
	display: block;
	background-color: #2A0;
	text-indent: -10000px;
}

因为是基于 jquery 语法写的,所以还要引用一个文件:jquery.js,网上下载即可。

那么效果图如下:

另外一种就是把切换的栏目放到右边去,如下图:

后来又在网上学习了另一种样式,如下图:

当点击向右时,会有一个动态效果,就是左边的那张图片会向左移动,直到消失在浏览器的左侧,然后右边的四张图会依次移到左边的一个位置,在浏览器的最右边会出现新的一张图到达第五个位置。

时间: 2024-10-25 10:28:44

自己做的几个Slide简单效果的相关文章

迭代器就是重复地做一些事情,可以简单的理解为循环,在python中实现了__iter__方法的对象是可迭代的,实现了next()方法的对象是迭代器,这样说起来有

迭代器就是重复地做一些事情,可以简单的理解为循环,在python中实现了__iter__方法的对象是可迭代的,实现了next()方法的对象是迭代器,这样说起来有点拗口,实际上要想让一个迭代器工作,至少要实现__iter__方法和next方法.很多时候使用迭代器完成的工作使用列表也可以完成,但是如果有很多值列表就会占用太多的内存,而且使用迭代器也让我们的程序更加通用.优雅.pythonic.下边是一个例子,从里边你会感受到不用列表而用迭代器的原因. #!/usr/bin/env python #c

Nodejs做web服务器的一个简单逻辑和实现

本文写了自己对"Nodejs做web服务器的一个简单逻辑和实现",如果不太合理,或者了解这部分的大神,欢迎拍死.哈哈,新手. 昨天开始学习Nodejs,w3cschool看了一遍.感觉其上的内容,一上来就开始介绍Nodejs的模块.看来后来,连如何"从零创建一个nodejs版的web服务器"都没能明白.可能是自己太过肤浅,或者,陷到了WAMP的思维里,不能自拔吧.后来在nodejs中文社区发了个帖子.感觉自己算是明白了点儿.写出来,希望和大家一起学习,同时也希望得到

伪选择器:after的清浮动简单效果

:after的作用是在当前的应用元素后面添加内容 如div:after{ content:"This is a demo" } 还有就是清除浮动(参考代码): <style> #box{border:2px solid #ccc;} .clear:after{content:'';display:block;clear:both;} .box{width:200px;height:100px;background:red;float:left;} </style>

练习:分享划过简单效果

利用目标点判断速度speed正负值.利用目标点函数封装传参, <!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-sca

自己动手丰衣足食,为Zepto添加Slide动画效果

一.缘由 公司的移动端项目,采用zepto为主要框架,但是zepto毕竟是精简版的jquery,体积小了,功能自然没有这么强大,特别是动画和选择器这两块,需要我们自己去拓展. 在项目开发过程中,很多页面过渡需要用到动画,简单的show/hide过渡太生硬,对用户不友好,并且移动端大多都是采用slide效果,此文主要是为zepto拓展slide动画. 二.发现 从zepto的在线文档上可以发现一个发布在github上的动画模块,但是缺少slide效果,度娘上找了找,相关的极少,只发现了一个slid

UI--微博(动态)点赞,简单效果中的不简单门道

<代码里的世界> -UI篇 用文字札记描绘自己 android学习之路 转载请保留出处 by Qiao http://blog.csdn.net/qiaoidea/article/details/45850641 [导航] - 单行文本水平触摸滑动效果 通过EditText实现TextView单行长文本水平滑动效果 - 多行文本折叠展开 自定义布局View实现多行文本折叠和展开 1.概述 说起空间动态.微博的点赞效果,网上也是很泛滥,各种实现与效果一大堆.而详细实现的部分,讲述的也是参差不齐,

给酒店做的无线上网覆盖工程,效果极佳

前一段时间做了一个酒店的无线覆盖工程,最近整理图片,拿出来分享一下.以前一直做网络工程,用过TP面板式,后来发现用多了会出现干扰,在网上查询了解过关于酒店无线覆盖这方面资料,在几个方案中选择了一种最简单的价格适中的方案.发现用天馈式更专业一些,所谓天馈式覆盖,就是吸顶天线+馈线连接无线AP,一个AP分接多个吸顶天线安装在走道,覆盖穿透到两边的房间. 天馈式覆盖安装比较简单,在走道安装,不需要每个房间动手,吸顶安装在通道看起来也很美观.最后发现移动和联通也是把吸顶天线装在楼道,好了,不再哆嗦,先上

为Zepto添加Slide动画效果

一.缘由 公司的移动端项目,采用zepto为主要框架,但是zepto毕竟是精简版的jquery,体积小了,功能自然没有这么强大,特别是动画和选择器这两块,需要我们自己去拓展. 在项目开发过程中,很多页面过渡需要用到动画,简单的show/hide过渡太生硬,对用户不友好,并且移动端大多都是采用slide效果,此文主要是为zepto拓展slide动画. 二.发现 从zepto的在线文档上可以发现一个发布在github上的动画模块,但是缺少slide效果,度娘上找了找,相关的极少,只发现了一个slid

ps做gif 登陆下拉菜单效果

作者这里仅介绍登录动画的制作思路和简单过程.一些细节的制作,如登录框,每一帧的图像等都需要自己根据参考图慢慢完成.最终效果 1.新建大小适当的文件,背景填充暗蓝色.首先设计一个底座,主要用图层样式来完成. 2.设计一个纸张的出口,同样用图层样式制作. 3.画一张纸,用图层蒙版画出下面的锯齿,再新建图层添加剪贴蒙版,给纸张增加阴影. 4.输入需要布局的文字,在这里需要考虑交互问题.快速而不繁琐是最好的. 5.首先在草稿上或脑海里构思出预想的一个动态交互,然后到菜单:窗口 > 时间轴,并选中它. 6