当前位置:Gxlcms > html代码 > 基于jQuery的一个简单的图片查看器_html/css_WEB-ITnose

基于jQuery的一个简单的图片查看器_html/css_WEB-ITnose

时间:2021-07-01 10:21:17 帮助过:5人阅读

  项目中自己diy了一个图片查看器。因为初始代码不是自己的,只是在上面改了一下也没有弄的很漂亮。等以后有时间了在重写一下样式和封装,作为备用的只是积累吧。如果有童鞋有用到,完全可以在此基础上改,比较容易,代码也比较简单

  图片查看器主要有几个功能:

  1.显示图片和图片信息(图片名称、发布者等等)

  2.切换图片

  3.关闭图片查看器

初始化接口函数pictureViewer.init: function(picInfos,tapNumber,isBig)

  picInfos: 传入图片组信息,必须,格式如下

    var picInfos = [        {          "url" : "default.png",          "data": [            {              "key":"名称:",              "value":"测试图片"            },            {              "key":"发布者:",              "value":"chua"            }          ]        },        {          "url" : "test.jpeg",          "data": [            {              "key":"名称",              "value":"测试图片"            },            {              "key":"发布者:",              "value":"发大水发大水发顺风h"            },            {              "key":"这个图片的其他信息",              "value":"vsfsgsdgfds234323424"            }          ]        },        ...    ] //传入参数的样式 

  tapNumber: 要显示的图片在图片列表中的索引,必须,从0开始

  isBig:是否使用大图查看,默认是false,可选

  

  html及css源码如下(后面有一个例子)

      

  js的源码如下

pictureViewer = {    picInfos: [],    curPicIndex: 0,    isBig:false,//大图查看?默认为false。默认图片显示区域为window宽度的40%,大图为80%    imgTapSelector:".imgTapDetail",    init: function(picInfos,tapNumber,isBig){        var _this = this;        _this.picInfos = picInfos;        _this.curPicIndex = tapNumber;        _this.isBig = isBig;        tapImgInit();                //图片查看器初始化        function tapImgInit(){            //页面代码和事件只需要初始化一次即可            if(!_this.guid){                _this.guid = 1;                initTapImgHtml();                $(document).on("click","#rightTap",function(){                    _this.curPicIndex++;                    if(_this.curPicIndex == _this.picInfos.length){                        _this.curPicIndex = 0;                    }                    $("#tapContent").html("")                    tapImg()                }).on("click","#leftTap",function(){                    _this.curPicIndex--;                    if(_this.curPicIndex < 0){                        _this.curPicIndex = _this.picInfos.length-1;                    }                    $("#tapContent").html("")                    tapImg();                }).on("click","#closeTap",function(){                    $(_this.imgTapSelector).hide("fast")                })            }            var offTop = top.document.body.scrollTop || top.document.documentElement.scrollTop;            $('#imgTapPanel').css("margin-top",_this.isBig?(offTop>30?offTop:30):offTop + 100)            tapImg();            $(_this.imgTapSelector).show("fast");        }        //初始化图片查看器的html代码        function initTapImgHtml(){            var $detailText = '
' + '
' + '
' + '
' + '
' + '
' + '
' + '
' + '' + '
' + '
' + '
'; $(_this.imgTapSelector).html($detailText); hoverButton("#leftTap", 0, 0, 0, "-80px"); hoverButton("#rightTap", "-80px", 0, "-80px", "-80px"); hoverButton("#closeTap", 0, "-165px", "-60px", "-165px"); } //添加左右切换图标、关闭图标的hover响应事件。这个其实可以起到css中更好一些 function hoverButton(id, x, y, A, B){ $(id).hover(function(){ $(this).css('background-position', A + ' '+ B) },function(){ $(this).css('background-position', x + ' '+ y) }) } //刷新当前图片及图片信息 function tapImg(){ var reg = /[::]$/, leftTap = $("#leftTap"), rightTap = $("#rightTap"), imgTap = $("#tapImg"), contentTap = $("#tapContent"); leftTap.css("display","block"); rightTap.css("display","block"); if(_this.picInfos.length == 1){ leftTap.css("display","none"); rightTap.css("display","none"); } imgTap.attr("src",_this.picInfos[_this.curPicIndex].url); var data = _this.picInfos[_this.curPicIndex].data, dataLength = data.length, $text = ""; for(var i=0; i'+data[i].key.replace(reg,"")+':' + ''+data[i].value+'' + '
'; }; contentTap.empty().append($text); setTimeout(function(){ if(_this.isBig && imgTap.height() > 400){ imgTap.parent().attr("style","height:inherit"); }else{ imgTap.parent().removeAttr("style"); } },1); } }}

  css中用到的切图imgTap.png为下面的图片

  

  测试例子pictureViewer.init(picInfos,0,true);的效果图如下

  测试例子pictureViewer.init(picInfos,0,false);的效果图如下

  这是一个比较粗糙的图片查看器,改起来也比较方便。后期如果有时间本人重写一下。

  

  如果觉得本文不错,请点击右下方【推荐】!

人气教程排行