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 相关文章推荐
用js实现预览待上传的本地图片
Mar 15 Javascript
Javascript 文件夹选择框的两种解决方案
Jul 01 Javascript
Javascript变量函数浅析
Sep 02 Javascript
基于Jquery实现的一个图片滚动切换
Jun 21 Javascript
js鼠标点击事件在各个浏览器中的写法及Event对象属性介绍
Jan 24 Javascript
浅谈js的html元素的父节点,子节点
Aug 06 Javascript
js实现前端分页页码管理
Jan 06 Javascript
jQuery给表格添加分页效果
Mar 02 Javascript
利用JS做网页特效_大图轮播(实例讲解)
Aug 09 Javascript
带你了解session和cookie作用原理区别和用法
Aug 14 Javascript
vue.js打包之后可能会遇到的坑!
Jun 03 Javascript
JavaScript交换变量的常用方法小结【4种方法】
May 07 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学习之数组的定义和填充
2011/04/17 PHP
php实现异步将远程链接上内容(图片或内容)写到本地的方法
2016/11/30 PHP
PHP实现ASCII码与字符串相互转换的方法
2017/04/29 PHP
PHP实现的策略模式示例
2019/03/20 PHP
解决Laravel 使用insert插入数据,字段created_at为0000的问题
2019/10/11 PHP
JavaScript面向对象之体会[总结]
2008/11/13 Javascript
基于jQuery的图片左右无缝滚动插件
2012/05/23 Javascript
NodeJS的url截取模块url-extract的使用实例
2013/11/18 NodeJs
jQuery实现输入框下拉列表树插件特效代码分享
2015/08/27 Javascript
全面解析jQuery $(document).ready()和JavaScript onload事件
2016/06/08 Javascript
mui上拉加载功能实例详解
2017/04/13 Javascript
JS实现标签页切换效果
2017/05/04 Javascript
jquery中done和then的区别(详解)
2017/12/19 jQuery
Parcel.js + Vue 2.x 极速零配置打包体验教程
2017/12/24 Javascript
浅析Node.js非对称加密方法
2018/01/29 Javascript
vue-cli脚手架打包静态资源请求出错的原因与解决
2019/06/06 Javascript
小程序中英文混合排序问题解决
2019/08/02 Javascript
[05:46]2018完美盛典-《同梦共竞》
2018/12/17 DOTA
python查找第k小元素代码分享
2013/12/18 Python
Python警察与小偷的实现之一客户端与服务端通信实例
2014/10/09 Python
Django框架中数据的连锁查询和限制返回数据的方法
2015/07/17 Python
在Django的session中使用User对象的方法
2015/07/23 Python
浅谈Pycharm中的Python Console与Terminal
2019/01/17 Python
在python中实现同行输入/接收多个数据的示例
2019/07/20 Python
Python的对象传递与Copy函数使用详解
2019/12/26 Python
python 线程的五个状态
2020/09/22 Python
pytorch 计算Parameter和FLOP的操作
2021/03/04 Python
如何手工释放资源
2013/12/15 面试题
电大物流学生的自我评价
2013/10/25 职场文书
信息专业本科生个人的自我评价
2013/10/28 职场文书
2014年党员评议表自我评价
2014/09/27 职场文书
2014年档案室工作总结
2014/12/01 职场文书
2014小学教师年度考核工作总结
2014/12/03 职场文书
社区党风廉政建设调研报告
2015/01/01 职场文书
幼儿教师师德师风自我评价
2015/03/05 职场文书
浅谈node.js中间件有哪些类型
2021/04/29 Javascript