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+CSS制作DIV层可(最小化/拖拽/排序)功能实现代码
Feb 25 Javascript
深入探密Javascript数组方法
Jan 08 Javascript
jquery制作 随机弹跳的小球特效
Feb 01 Javascript
JQuery中Ajax()的data参数类型实例分析
Dec 15 Javascript
浅谈js继承的实现及公有、私有、静态方法的书写
Oct 28 Javascript
Vue项目报错:Uncaught SyntaxError: Unexpected token
Nov 10 Javascript
利用Promise自定义一个GET请求的函数示例代码
Mar 20 Javascript
JS数组方法shift()、unshift()用法实例分析
Jan 18 Javascript
JavaScript原型继承和原型链原理详解
Feb 04 Javascript
js实现简单放大镜效果
Mar 07 Javascript
js实现简单扫雷
Nov 27 Javascript
插件导致ECharts被全量引入的坑示例解析
Sep 23 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/02/03 PHP
调整优化您的LAMP应用程序的5种简单方法
2011/06/26 PHP
PHP中trim()函数简单使用指南
2015/04/16 PHP
PHP中的类型约束介绍
2015/05/11 PHP
PHP strip_tags保留多个HTML标签的方法
2016/05/22 PHP
Laravel中如何增加自定义全局函数详解
2017/05/09 PHP
PHP封装mysqli基于面向对象的mysql数据库操作类与用法示例
2019/02/25 PHP
JavaScript中的作用域链和闭包
2012/06/30 Javascript
Javascript实现视频轮播在pc端与移动端均可
2013/09/29 Javascript
当鼠标滑过文本框自动选中输入框内容的JS代码分享
2013/11/26 Javascript
Jquery设置attr的disabled属性控制某行显示或者隐藏
2014/09/25 Javascript
JS使用oumousemove和oumouseout动态改变图片显示的方法
2015/03/31 Javascript
对jQuary选择器的全面总结
2016/06/20 Javascript
轻松5句话解决JavaScript的作用域
2016/07/15 Javascript
Json对象和字符串互相转换json数据拼接和JSON使用方式详细介绍(小结)
2016/10/25 Javascript
ActiveX控件的使用-js实现打印超市小票功能代码详解
2017/11/22 Javascript
详解webpack之scss和postcss-loader的配置
2018/01/09 Javascript
JS 实现微信扫一扫功能
2018/09/14 Javascript
vue-cli3环境变量与分环境打包的方法示例
2019/02/18 Javascript
深入分析jQuery.one() 函数
2020/06/03 jQuery
[01:01:31]2018DOTA2亚洲邀请赛3月29日小组赛B组 Mineski VS paiN
2018/03/30 DOTA
基于Python如何使用AIML搭建聊天机器人
2016/01/27 Python
Python判断文件或文件夹是否存在的三种方法
2017/07/27 Python
Python实现扩展内置类型的方法分析
2017/10/16 Python
使用python实现语音文件的特征提取方法
2019/01/09 Python
Python实现E-Mail收集插件实例教程
2019/02/06 Python
基于Python编写一个计算器程序,实现简单的加减乘除和取余二元运算
2020/08/05 Python
Python plt 利用subplot 实现在一张画布同时画多张图
2021/02/26 Python
css3.0 图形构成实例练习二
2013/03/19 HTML / CSS
办理暂住证介绍信
2014/01/11 职场文书
保险专业大学生职业规划书
2014/03/03 职场文书
副科级后备干部考察材料
2014/05/15 职场文书
大专生自荐书范文
2014/06/22 职场文书
民政局标准版离婚协议书
2014/12/01 职场文书
正确使用MySQL update语句
2021/05/26 MySQL
js基于div丝滑实现贝塞尔曲线
2022/09/23 Javascript