`
taro
  • 浏览: 136565 次
  • 性别: Icon_minigender_1
  • 来自: 东京
社区版块
存档分类
最新评论

jQuery lightBox plugin 源码读后感【原创】

阅读更多

jQuery lightBox plugin简介:

      Lightbox应该是目前为止最流行的图片浏览插件。jQuery lightBox plugin是作者Leandro Vieira Pinho基于Lightbox2改编的jQuery插件。

功能列表:

  1. 自动根据窗口的大小缩放图片
  2. 模式窗口,幻灯片方式播放
  3. 图片内容预加载
  4. 渐变动画效果。

官网地址:

http://leandrovieira.com/projects/jquery/lightbox/

代码介绍:

1,巧妙利用jQuery选择器

      使用jQuery lightBox plugin不需要更改你的HTML代码,仅把希望显示的一系列图片url设置在一系列对应的<a>标签的href链接中。利用jQuery选择器获得图片列表,图片列表调用lightBox方法。

 $('#gallery a').lightBox();


2,图片列表信息保存在自定义二位数组settings.imageArray中

for ( var i = 0; i < jQueryMatchedObj.length; i++ ) {
	settings.imageArray.push(new Array(jQueryMatchedObj[i].getAttribute('href'),jQueryMatchedObj[i].getAttribute('title')));
}

这个数组将在预加载图时用到,来获取前后图片的src数据。


3,over-lay 【全屏半透明遮罩】

jQuery lightBox plugin的over-lay实现全页面大小的半透明遮罩,遗憾的是

/**  THIRD FUNCTION
	* getPageSize() by quirksmode.com
	*
	* @return Array Return an array with page width, height and window width, height
*/
function ___getPageSize() 

      引用的第三方计算页面尺寸的方法有bug,其二,由于浏览器兼容问题,firefox得到的页面宽度width和长度height都比实际大。

      所以个人认为,实现全页面不如实现全屏幕半透明遮罩。 通过css的position:fixed定位功能使全屏幕半透明遮罩静止在屏幕上,即使拖动滚动条也不会动。修改lightBox css文件:

#jquery-overlay {
	position: fixed;
	top: 0;
	left: 0;
	z-index: 90;
	width: 100%;
	height: 500px;
}

由于万恶的IE6不支持position:fixed的属性,我们需要利用expression在CSS中写点针对IE6的东东:

 

/*IE6 fixed*/
* html #jquery-overlay {
	*position: absolute; 
	*left: expression(documentElement.scrollLeft + documentElement.clientWidth - this.offsetWidth);
	*top: expression(documentElement.scrollTop + documentElement.clientHeight - this.offsetHeight);
}

 

4,图片预加载技术

      HTML DOM Image 对象代表嵌入的图像。<img> 标签每出现一次,一个 Image 对象就会被创建。src 属性可设置或返回图像的 URL。当把该属性设置为新图像的 URL 时,浏览器就会把那幅新图像装载并显示出来。

      jQuery lightBox plugin使用图片预加载技术实现了两个功能:

  1. 提前获取即将加载图片的宽度和长度尺寸:

// Image preload process
var objImagePreloader = new Image();
objImagePreloader.onload = function() {
	$('#lightbox-image').attr('src',settings.imageArray[settings.activeImage][0]);
// Perfomance an effect in the image container resizing it
     _resize_container_image_box(objImagePreloader.width,objImagePreloader.height);
//	clear onLoad, IE behaves irratically with animated gifs otherwise
	objImagePreloader.onload=function(){};
};
objImagePreloader.src = settings.imageArray[settings.activeImage][0];
  首先,创建空的图片对象new Image();其次为图片对象src属性赋图片URL值,这样浏览器就开始加载被赋值URL对应的图片;最后,图片加载完毕之后调用onload事件句柄,获取图片尺寸。


     2. 功能而在用户观看当前图片时,预先加载前后两边的图片,以此提高图片加载速度。

/**
	* Preload prev and next images being showed
	*
*/
function _preload_neighbor_images() {
	if ( (settings.imageArray.length -1) > settings.activeImage ) {
		objNext = new Image();
		objNext.src = settings.imageArray[settings.activeImage + 1][0];
	}
	if ( settings.activeImage > 0 ) {
		objPrev = new Image();
		objPrev.src = settings.imageArray[settings.activeImage -1][0];
	}
}
  同样通过创建空图像对象赋值src方法预加载图像。

分享到:
评论
4 楼 fanxiaoyu19840503 2012-07-20  
请教一个问题

jQuery lightBox plugin

文字描述的部分 是否可以添加html标签 类似按钮

触发按钮 进而改变图片的某些属性
3 楼 zps_77 2012-06-12  
taro 写道
zps_77 写道
楼主请教个关于这个插件的问题,就是按照说明已经弄好后,为什么还会直接跳到显示链接的图片?

麻烦说具体一些, 直接跳到显示连接的图片? 是否有代码贴出



哦,我这边可以了。谢谢lz
2 楼 taro 2012-06-06  
zps_77 写道
楼主请教个关于这个插件的问题,就是按照说明已经弄好后,为什么还会直接跳到显示链接的图片?

麻烦说具体一些, 直接跳到显示连接的图片? 是否有代码贴出
1 楼 zps_77 2012-06-06  
楼主请教个关于这个插件的问题,就是按照说明已经弄好后,为什么还会直接跳到显示链接的图片?

相关推荐

    jQuery lightbox plugin 图片盒子

    jQuery lightbox plugin是一种广泛使用的JavaScript库,用于在网页上创建优雅的图片查看器效果,通常称为“lightbox”效果。这个插件允许用户在不离开当前页面的情况下查看大图,为浏览图片提供了一种沉浸式的体验。...

    jQuery Lightbox Plugin--缩图查看插件,图片查看器

    《jQuery Lightbox Plugin——打造极致图片查看体验》 在网页设计和开发中,为了提供优质的用户体验,图片查看功能显得尤为重要。jQuery Lightbox Plugin就是这样一款专为网页图片展示而设计的插件,它基于流行的...

    jQuery lightbox plugin 图片盒子升级修正版.zip

    jQuery Lightbox Plugin是一款广泛使用的JavaScript库,用于在网页上创建优雅的图片弹出窗口或“灯箱效果”。这个“图片盒子升级修正版”是原始jQuery Lightbox插件的一个改进版本,可能包含了修复的问题、增强的...

    jquery-lightbox

    《jQuery Lightbox:一款强大的图片弹出框插件》 jQuery Lightbox是一款广泛使用的JavaScript库,专门用于在网页上创建优雅的、响应式的图片和媒体查看器。它以轻量级、可定制和用户友好而著称,是网页设计师和...

    jQuery Lightbox

    jQuery Lightbox是一款基于JavaScript库jQuery的轻量级弹出图库插件,它允许用户在网页上优雅地展示和浏览图片。Lightbox技术源于早期的Web设计,它通过在页面上创建一个半透明的背景层,将选定的图片放大并居中显示...

    Jquery lightbox2炫酷相框功能

    1. **美观的界面**:jQuery Lightbox2提供了一种优雅的方式来展示图像和媒体内容,它的设计风格简约而不失精致,能够为网站增添专业感。 2. **高度自定义**:用户可以通过CSS样式表轻松定制Lightbox的外观,以适应...

    jQuery Lightbox插件实现图片放大预览特效源码.zip

    该压缩包“jQuery Lightbox插件实现图片放大预览特效源码.zip”中可能包含以下文件和目录: 1. `jquery.lightbox.js`:这是jQuery Lightbox插件的主要JavaScript文件,包含了所有必要的函数和逻辑,用于实现图片...

    jQuery的lightbox插件

    jQuery的Lightbox插件是一种流行的JavaScript库,用于在网页上创建弹出式的图像查看器。这个插件在用户点击一个图像链接时,会在当前页面上显示一个覆盖全屏的轻量级窗口,其中包含该图像以及其他相关的导航按钮,如...

    响应速度快的jQuery Lightbox插件实现源码.zip

    总结来说,"响应速度快的jQuery Lightbox插件实现源码.zip"提供了一种高效的方法来在网页上展示媒体内容,通过解压并按照“使用须知.txt”中的指示操作,你可以快速集成并自定义这个插件,以适应你的网页设计需求。

    jQuery Lightbox图片放大

    - **初始化**:在网页加载完成后,使用jQuery选择器找到所有需要绑定Lightbox的图片链接。 - **数据处理**:将大图URL和其他相关信息(如标题)附加到原始图片元素的自定义属性中。 - **事件绑定**:为这些图片元素...

    图片展示效果-jquery Lightbox

    3. **初始化插件**:在文档加载完成后,调用jQuery Lightbox的初始化方法,如`$("a.lightbox").lightbox();` 4. **自定义设置**:根据需求,可以通过传递选项对象来调整Lightbox的行为,例如设置动画速度、遮罩颜色...

    jquery灯箱插件Lightbox

    4. **初始化插件**:在页面加载完成后,使用jQuery的`$(document).ready()`方法来初始化Lightbox插件。 ```javascript $(document).ready(function() { $('a[rel="lightbox"]').lightBox(); }); ``` 5. **自定义...

    jQuery LightBox带放大镜的图片画廊特效源码.zip

    这个"jQuery LightBox带放大镜的图片画廊特效源码"正是基于jQuery实现的,能够帮助开发者轻松创建具有放大镜功能的图片画廊,为用户带来更加直观和互动的浏览体验。 首先,jQuery LightBox的核心在于其轻量级和易于...

    jQuery Lightbox图片放大预览代码.zip

    3. JavaScript调用:在文档加载完成后,使用jQuery选择器找到这些小图,并绑定Lightbox事件。例如,`$('a.lightbox').lightBox();` 4. 自定义设置:jQuery Lightbox提供了丰富的选项来调整其行为,如动画速度、键盘...

    jQuery Lightbox 图片展示插件.zip

    3. **初始化插件**:在文档加载完成后,使用jQuery的`$(document).ready()`函数来初始化Lightbox插件。这通常是通过调用`.lightbox()`方法实现的。 4. **配置选项**:jQuery Lightbox允许你自定义各种选项,如动画...

    jquery lightbox (图片效果)

    在使用jQuery Lightbox时,开发人员需要在页面中引入jQuery库和Lightbox的JavaScript及CSS文件,然后按照文档的指导配置选项和绑定事件。例如,可以使用以下代码片段来初始化Lightbox: ```html ...

Global site tag (gtag.js) - Google Analytics