jquery插件jquery.LightBox.js之点击放大图片并左右点击切换图片(仿相册插件)

jquery插件jquery.LightBox.js之点击放大图片并左右点击切换图片(仿相册插件)该插件乃本博客作者所写,目的在于提升作者的js能力,也给一些js菜鸟在使用插件时提供一些便利,老鸟就悠然地飞过吧。此插件旨在实现目前较为流行的点击放大图片并左右点击切换图片的效果,您可以根据自己的实际需求来设置是否添加左右切换图片的效果。整体代码如下:<!DOCTYPEhtmlPUBLIC”-//W3C//DTDXHTML1.0Transitional//EN””h…

该插件乃本博客作者所写,目的在于提升作者的js能力,也给一些js菜鸟在使用插件时提供一些便利,老鸟就悠然地飞过吧。

此插件旨在实现目前较为流行的点击放大图片并左右点击切换图片的效果,您可以根据自己的实际需求来设置是否添加左右切换图片的效果。整体代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<style>
*{
    
    margin:0;padding:0;}
li{
    
    list-style:none;}
.item{
    
    margin:20px;}
.item ul li{
    
    float:left;margin-right:20px;}
.item ul li img{
    
    width:100px;cursor:pointer;}
.lb_wrap{
    
    display:none;}
.lightbox_bg{
    
    background:#000;filter:alpha(opacity=70);opacity:.7;position:absolute;left:0;top:0;width:100%;height:100%;z-index:1;}
.lightbox{
    
    position:absolute;left:0;top:50%;width:100%;z-index:2;text-align:center;}
.lightbox p{
    
    position:absolute;height:61px;width:38px;top:50%;left:0;z-index:2;background:transparent url(themes.png) no-repeat left top;margin-top:-30.5px;cursor:pointer;}
.lightbox p.next{
    
    left:auto;background-position:right top;right:0;}
</style>
<script type="text/javascript" src="jquery-1.7.1.js"></script>
<script type="text/javascript" src="jquery.LightBox.js"></script>
</head>

<body>
<div class="item">
  <ul>
    <li><img src="01.jpg" /></li>
    <li><img src="02.jpg" /></li>
    <li><img src="03.jpg" /></li>
    <li><img src="04.jpg" /></li>
    <li><img src="05.jpg" /></li>
    <li><img src="06.jpg" /></li>
  </ul>
</div>
<script>
$(function(){
    $(".item").LightBox({
        controls : true          //上一张、下一张按钮是否显示,默认是显示true
        });
    })
</script>
</body>
</html>

插件jquery.LightBox.js代码:

/*
*LightBox 1.0
*Copyright (c) 2015 小坏 http://tnnyang.cnblogs.com
*dependence jquery-1.7.1.js
*/
;(function(a){
    a.fn.LightBox = function(options){
        var defaults = {
            controls : true          //上一张、下一张按钮是否显示,默认是显示true
            }
        var opts = a.extend(defaults, options);        
        
        var lb_wrap = '<div class="lb_wrap"><div class="lightbox_bg"></div><div class="lightbox"><img src="loading.gif" class="lg_img"></div></div>';
        a("body").append(lb_wrap);
        
        //controls
        if(opts.controls){
            a(".lightbox").append('<p class="prev"></p><p class="next"></p>');
            }
            
        function imgobj(obj1, obj2){
            //imgObj.height是通过img对象获取的图片的实际高度
            var imgObj = new Image();                
            imgObj.src = obj1.attr("src");                            
            var margintop = 0 - (imgObj.height)/2; 
            obj2.css("margin-top",margintop);
            }        
        
        this.each(function(){
            var obj = a(this);
            var numpic = obj.find("li").length;
            var num = 0;
            
            //点击赋值并显示
            obj.find("img").click(function(){            
                var src = a(this).attr("src");                            
                a(".lg_img").attr("src",src);
                imgobj(a(".lg_img"), a(".lightbox"));                
                
                a(".lb_wrap").fadeIn();
                a(".lg_img").fadeIn();
                a(".prev").fadeIn().siblings(".next").fadeIn();
                num = a(this).parent().index();   //获取当前图片的父元素的索引并赋给num为后边点击上一张、下一张服务        
                });
            
            //上一张
            a(".prev").click(function(){                                
                if(num == 0){
                      num = numpic;
                  }                
                var src = obj.find("li").eq(num-1).find("img").attr("src");
                a(".lg_img").attr("src",src);                
                imgobj(a(".lg_img"), a(".lightbox"));
                
                num--;
                });
                
            //下一张
            a(".next").click(function(){
                if(num == numpic-1){
                      num = -1;
                }                
                var src = obj.find("li").eq(num+1).find("img").attr("src");        
                a(".lg_img").attr("src",src);                
                imgobj(a(".lg_img"), a(".lightbox"));
                
                num++;
                });
                
            //点击除了上一张、下一张之外的其他地方隐藏
            a(".lb_wrap").click(function(e){
                  var e = e || window.event;
                  var elem = e.target || e.srcElement;
                  while(elem){
                      if (elem.className && elem.className.indexOf('prev')>-1) {
                          return;
                      }
                      if(elem.className && elem.className.indexOf('next')>-1){
                          return;                  
                          }
                      elem = elem.parentNode;
                  }
                  a(this).find("img").attr("src","loading.gif").hide();      //隐藏后,再将默认的图片赋给lightbox中图片的src
                  a(this).find(".prev").hide().siblings(".next").hide();
                  a(this).fadeOut();
                });  
            })
        }
    })(jQuery);

点击下载Demo

转载于:https://www.cnblogs.com/tnnyang/p/4846240.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/35862.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注