随笔-91  评论-348  文章-1  trackbacks-2

修改Thickbox,预加载图片和点击图片前后浏览

2011了,大家新年好!

外面寒冷,躲在家里写写博客还是挺好的。

今天为我的博客修改了下jQuery的Thickbox,增加了预加载图片功能和点击图片前后浏览的功能。

首先看下效果:

http://www.jinweijie.com/photo/?album=1&gallery=3

 

效果图(看右侧的箭头)

image

先说说预加载功能

点击图片,当图片加载完毕以后,会自动加载后2张图片,这样,浏览起来会变得很顺畅。

主要代码:

替换thickbox.js中的:

imgPreloader = new Image();
imgPreloader.onload = function(){
imgPreloader.onload = null;

 

imgPreloader = new Image();
prevImg = new Image();
nextImg = new Image();
imgPreloader.onload = function(){
imgPreloader.onload = null;

var tb_links = jQuery('a[class="thickbox"]');
var i = -1;
tb_links.each(function(n) { if (this.href == imgPreloader.src) { i = n; } });


if (i != -1) {
    if (i>0) { prevImg.src = tb_links[i-1].href; }
    if (i+1 < tb_links.length) { 
    
        var imgTemp1 = new Image();
        imgTemp1.src = tb_links[i+1].href; 
        
        if(tb_links[i+2]){
            var imgTemp2 = new Image();
            imgTemp2.src = tb_links[i+2].href; 
        }
        
        if(tb_links[i+3]){
            var imgTemp3 = new Image();
            imgTemp3.src = tb_links[i+3].href; 
        }
    }
}

接着是浏览按钮功能

需要3张图片left.gif, right.gif, pixel.gif。分别是左右和div透明背景图。
然后修改thickbox.css,增加:
#divNavControl{
    position: absolute;
    z-index:999;
}

#divPre{
     height: 100%;
    left: 0;
    position: absolute;
    width: 50%;
    background:url(pixel.gif) repeat;
    cursor:pointer;
}

#divNext{
    height: 100%;
    position: absolute;
    right: 0;
    width: 50%;
    background-color:transparent;
    background:url(pixel.gif) repeat;
    cursor:pointer;
}

#imgLeftArrow{
    position:absolute;
    top:45%;
    left:0;
}

#imgRightArrow{
    position:absolute;
    top:45%;
    right:0;
}

最后修改thickbox.js,由于代码太长了,就不贴出来了,大家有兴趣可以看看,或者直接用就行了。

下载请到 http://www.jinweijie.com/javascript/thickbox-add-previous-and-next-button-on-image-like-lightbox/

这里就不上传了。

 

谢谢大家,再次祝大家新年快乐!

posted on 2011-01-01 15:39 JIN Weijie 阅读(1266) 评论(6) 编辑 收藏

评论:
#1楼 2011-01-01 16:52 | IT鸟      
第三张还是有点慢的说
 回复 引用 查看   
#2楼[楼主] 2011-01-01 16:54 | JIN Weijie      
@IT鸟
服务器在美国,速度本来就有点慢的。

 回复 引用 查看   
#3楼 2011-01-01 17:53 | 合仔茶      
怎么样用?
 回复 引用 查看   
#4楼[楼主] 2011-01-01 18:48 | JIN Weijie      
@合仔茶
如果用在wordpress里的话,直接替换wp-include里的就行了

 回复 引用 查看   
#5楼 2011-01-02 11:55 | 不仅仅是通用权限设计      
强烈推荐一下
 回复 引用 查看   
#6楼 2011-01-03 10:59 | 星辰大海      
支持
 回复 引用 查看