jquery插件制作 图片走廊 gallery


Posted in Javascript onAugust 17, 2012

首先创建jquery.gallery.js的插件文件,构建程序骨架。

(function ($) { 
$.fn.gallery = function () { 


return this.each(function () { 



var self = $(this); 



self.click(function () { 



}); 


}); 

} 
})(jQuery);

创建html文件,使用我们创建的插件。

<!DOCTYPE html> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<title></title> 
<script type="text/javascript" src="Scripts/jquery-1.6.2.js"></script> 
<script type="text/javascript" src="Scripts/jquery.gallery.js"></script> 
<script type="text/javascript"> 
$(document).ready(function () { 
$('img').gallery(); 
}); 
</script> 
</head> 
<body> 
<img src="Images/orderedList1.png" alt="" /> 
<img src="Images/orderedList2.png" alt="" /> 
<img src="Images/orderedList3.png" alt="" /> 
</body> 
</html>

现在我们开始考虑如何实现点击图片的时候,显示放大图片的效果。其实我们显示放大的图片不是原先的图片,而是我们clone出了一个新图片,将他添加到页面中并加以显示。此外通过计算页面高度、宽度,图片高度、宽度,滚动条位置,来实现大图居中对齐的实现。下面我们看改进后的代码:
(function ($) { 
$.fn.gallery = function () { 
return this.each(function () { 
//将this变量保存到self,目的是为了避免程序错误 
//至于原因,上章简单提到this在函数上下中中代表的对象不同 
var self = $(this); 
//统一将小图的高度设置成100(根据个人需要可以调整,或者提供options选项) 
self.height(100); //添加click事件 
self.click(function () { 
//移除id为myImgGallery的对象,其实这个对象就是大图对象 
//每次点击的时候,都要移除上一次点击时产生的大图 
$('#myImgGallery').remove(); 
self.clone() //jquery的clone方法,clone图片 
.attr('id', 'myImgGallery')//设置id为myImgGallery 
.height($(window).height() / 2)//将图片高度设置为页面可用区域高度的一半(根据自己的需要也可以设置成其他值) 
.css({ 
position: 'absolute' 
}) 
.prependTo('body')//将大图添加到body对象中 
//使用自己创建的center插件,实现图片居中 
//注意,一定要将clone的对象添加到body后才能调用center方法,否则clone对象的width和height都为0 
.center() 
.click(function () {//添加大图的click事件 
$(this).remove(); //点击大图时,删除本身 
}); 
}); 
}); 
}; 
$.fn.center = function () { 
return this.each(function () { 
$(this).css({ 
//设置绝对定位,这样他就会浮动在最上层(必要的情况下可以设置zindex属性) 
position: 'absolute', 
//设置垂直居中对齐 
top: ($(window).height() - $(this).height()) / 2 + $(window).scrollTop() + 'px', 
//设置水平居中对齐 
left: ($(window).width() - $(this).width()) / 2 + $(window).scrollLeft() + 'px' 
}); 
}); 
}; 
})(jQuery);

好了,今天的内容到此结束。

demo下载地址:jQuery.plugin.gallery

Javascript 相关文章推荐
Jquery实战_读书笔记1—选择jQuery
Jan 22 Javascript
JavaScript具有类似Lambda表达式编程能力的代码(改进版)
Sep 14 Javascript
jquery监控数据是否变化(修正版)
Apr 12 Javascript
jQuery之自动完成组件的深入解析
Jun 19 Javascript
JS Jquery 遍历,筛选页面元素 自动完成(实现代码)
Jul 08 Javascript
JQuery文字列表向上滚动的代码
Nov 13 Javascript
window.location.href IE下跳转失效的解决方法
Mar 27 Javascript
基于jQuery实现美观且实用的倒计时实例代码
Dec 30 Javascript
jquery+ajax实现直接提交表单实例分析
Jun 17 Javascript
手机Web APP如何实现分享多平台功能
Aug 19 Javascript
解决html-jquery/js引用外部图片时遇到看不了或出现403的问题
Sep 22 jQuery
vue3.0 CLI - 2.1 -  component 组件入门教程
Sep 14 Javascript
jquery插件制作教程 txtHover
Aug 17 #Javascript
IFrame跨域高度自适应实现代码
Aug 16 #Javascript
JSONP 跨域共享信息
Aug 16 #Javascript
js自执行函数的几种不同写法的比较
Aug 16 #Javascript
js三种排序算法分享
Aug 16 #Javascript
jQuery点击后一组图片左右滑动的实现代码
Aug 16 #Javascript
JavaScript高级程序设计 阅读笔记(二十) js错误处理
Aug 14 #Javascript
You might like
php检查是否是ajax请求的方法
2015/04/16 PHP
php die()与exit()的区别实例详解
2016/12/03 PHP
dreamweaver 安装Jquery智能提示
2011/04/02 Javascript
javascript笔记 String类replace函数的一些事
2011/09/22 Javascript
jQuery之折叠面板的深入解析
2013/06/19 Javascript
angularJS 中$attrs方法使用指南
2015/02/09 Javascript
删除javascript所创建子节点的方法
2015/05/21 Javascript
整理Javascript流程控制语句学习笔记
2015/11/29 Javascript
详解springmvc 接收json对象的两种方式
2016/12/06 Javascript
jQuery+ajax实现局部刷新的两种方法
2017/06/08 jQuery
JS回调函数原理与用法详解【附PHP回调函数】
2019/07/20 Javascript
Vue 实现CLI 3.0 + momentjs + lodash打包时优化
2019/11/13 Javascript
在react中使用vue的状态管理的方法示例
2020/05/02 Javascript
跟老齐学Python之有容乃大的list(3)
2014/09/15 Python
python如何查看系统网络流量的信息
2016/09/12 Python
详解Python核心编程中的浅拷贝与深拷贝
2018/01/07 Python
python实现控制电脑鼠标和键盘,登录QQ的方法示例
2019/07/06 Python
python使用socket实现的传输demo示例【基于TCP协议】
2019/09/24 Python
pytorch中交叉熵损失(nn.CrossEntropyLoss())的计算过程详解
2020/01/02 Python
PyTorch学习:动态图和静态图的例子
2020/01/06 Python
PyTorch 随机数生成占用 CPU 过高的解决方法
2020/01/13 Python
TensorFlow 读取CSV数据的实例
2020/02/05 Python
Scrapy模拟登录赶集网的实现代码
2020/07/07 Python
基于Canvas+Vue的弹幕组件的实现
2019/07/23 HTML / CSS
h5页面唤起app如果没安装就跳转下载(iOS和Android)
2020/06/03 HTML / CSS
课程设计心得体会
2013/12/28 职场文书
社区工作者先进事迹
2014/01/18 职场文书
教师节促销活动方案
2014/02/14 职场文书
《雷鸣电闪波尔卡》教学反思
2014/02/23 职场文书
《独坐敬亭山》教学反思
2014/04/08 职场文书
信息技术课后反思
2014/04/27 职场文书
酒店服务员岗位职责
2015/02/09 职场文书
2015大学生暑期实习报告
2015/07/13 职场文书
员工聘用合同范本
2015/09/21 职场文书
《陶罐和铁罐》教学反思
2016/03/03 职场文书
Go语言实现一个简单的并发聊天室的项目实战
2022/03/18 Golang