亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

JS自動適應的圖片彈窗實例

2019-11-20 22:35:58
字體:
來源:轉載
供稿:網友
復制代碼 代碼如下:

/************************************自動適應的圖片彈窗*********************************/
var autoImg=function(argcs){/*調整圖片大小,等比例縮放argcs['maxHeight']=>最大高度,argcs['maxWidth']=>最大寬度,argcs['height']=>圖片高度,argcs['width']=>圖片寬度*/
                var _maxHeight='';
                var _maxWidth='';
                var _newSize=[];

                if(argcs['maxHeight']){
                    _maxHeight=argcs['maxHeight'];
                    }
                if(argcs['maxWidth']){
                    _maxWidth=argcs['maxWidth'];
                    }
                if(!argcs['height']){
                    throw new Error('height未指定');
                    }
                if(!argcs['width']){
                    throw new Error('width未指定');
                    }
                if(argcs['height']>argcs['width']||argcs['height']==argcs['width']){//高度不小于寬度的情況
                        if(argcs['height']>=_maxHeight){
                                _newSize['height']=_maxHeight;
                                _newSize['width']=(_maxHeight/argcs['height'])*argcs['width'];
                            }else{
                                _newSize['width']=argcs['width'];
                                _newSize['height']=argcs['height'];
                                }
                        return _newSize;
                    }
                if(argcs['width']>argcs['height']){//寬度大于高度的情況
                        if(argcs['width']>=_maxWidth){
                                _newSize['width']=_maxWidth;
                                _newSize['height']=(_maxWidth/argcs['width'])*argcs['height'];
                            }else{
                                _newSize['width']=argcs['width'];
                                _newSize['height']=argcs['height'];
                                }
                        return _newSize;
                    }               
                }

    var imgBox=function(imgSrc){            
            var winImg=new popBox({//圖片彈窗
                ID:'imgBox',
                bgColor:'#a3c90e',
                width:906,
                moveHandle:false,
                closeButton:false,
                height:'auto',
                times:250,
                lock:true,
                content:'',
                shadow:true,
                position:'center',
                displayCallBack:function(){
                                       $('body').append('<img id="loading" src="/template/27/img/loading.gif"/>');
                    $('img[id=loading]').css('z-index',110000).css({position:'absolute',left:$(window).scrollLeft()+($(window).width())/2-($('img[id=loading]').width())/2-22,top:$(window).scrollTop()+($(window).height()/2-($('img[id=loading]').width())/2)});
                    /************圖片預加載,重新調整窗口大小及位置**************/
                    var img=new Image();
                    var _imgWidth=0;
                    var _imgHeight=0;
                    img.src=imgSrc;//為img對象添加地址
                                       // console.log(imgSrc);
                                        /*************************圖片加載完成之后***************************/
                    img.onload=function(){
                                               $('img[id=loading]').remove();
                        _imgWidth=img.width;
                        _imgHeight=img.height;
                        var argcs=[];
                        var winWidth=$(window).width();
                        argcs['maxHeight']=750;//最大高度
                        argcs['maxWidth']=900;//最大寬度
                        argcs['height']=_imgHeight;
                        argcs['width']=_imgWidth;
                        var newWH=autoImg(argcs);//獲得縮略后的圖片寬和高
                        /************圖片預加載,重新調整窗口大小及位置************/
                        $('#'+winImg.ID).css({width:newWH['width'],height:newWH['height'],top:parseInt($(document).scrollTop())+parseInt(($(window).height()-newWH['height'])/2),left:$(document).scrollLeft()+parseInt(winWidth/2)-parseInt(newWH['width']/2)});
                        $('#'+winImg.ID).html('<img src="'+img.src+'" width="'+newWH['width']+'" height="'+newWH['height']+'"/>');
                        /************圖片預加載,重新調整窗口大小及位置**************/

                        $('#'+winImg.ID+'_bg').css('cursor','pointer').click(function(){
                            winImg.kill();
                            });
                        };
                                        /*************************圖片加載完成之后***************************/ 
                    },
                unDisplayCallBack:function(){

                    },
                killCallBack:function(){
                    }
                });
                winImg.dispaly();
    }

popBox代碼
復制代碼 代碼如下:

//若使用移動功能,請先導入jQuery移動UI組件
var popBox=function(settings){//彈窗函數settings=[]
        //alert(typeof settings['width']);
        //alert(settings['displayCallBack']);
        /************************本類私有變量*****************************/
        /*******************默認值*****************/
        var _shadow=true;//是否有遮罩true/false
        var _closeButton=false;//關閉按鈕false/dom元素
        var _killButton=false;//kill按鈕false/dom元素
        var _moveHandle=false;//拖動手柄false/dom元素
        var _width=650;//寬,
        var _bgColor='#FFF';//背景樣式
        var _height='auto';//高
        var _content='沒有內容';//內容
        var _position='center';/*位置topLeft,topCenter,topRight,center,bottomLeft,bottomRight,bottomCenter*/
        var _lock=true;//是否鎖定
        var _times=500;//顯示,隱藏的時間
        var _displayCallBack=function(){//dispaly回調函數
                alert('display');
            }
        var _unDisplayCallBack=function(){//unDispaly回調函數
                alert('unDisplay');
            }
        var _beforeKillCallBack=function(){
                alert('beforeKill');
            }//kill之前的回調函數
        var _killCallBack=function(){//kill回調函數
                alert('kill');
            }
        /*******************默認值*****************/
        if(settings['closeButton']!==undefined){
            //alert('shadow');
            _closeButton=settings['closeButton'];
            }   
        if(settings['killButton']!==undefined){
            //alert('shadow');
            _killButton=settings['killButton'];
            }
        if(settings['moveHandle']!==undefined){
            //alert('shadow');
            _moveHandle=settings['moveHandle'];
            }               
        /******************獲得設置值********************/
        /**settings['shadow']!=' ' && settings['shadow']!=undefined*/
        if(settings['shadow']!==undefined){
            //alert('shadow');
            _shadow=settings['shadow'];
            }
        if(settings['bgColor']!==undefined){
            //alert('shadow');
            _bgColor=settings['bgColor'];
            }
        if( settings['width']!==undefined){
            _width=settings['width'];
            }
        if( settings['height']!==undefined){
            _height=settings['height'];
            }
        if(settings['content']!==undefined){
            _content=settings['content'];
            }
        if(settings['position']!==undefined){
            _position=settings['position'];
            }
        if( settings['times']!==undefined){
            _times=settings['times'];
            }
        if(settings['lock']!==undefined){
            _lock=settings['lock'];
            }
        if(settings['displayCallBack']!=undefined){
            //alert('here');
            _displayCallBack=settings['displayCallBack'];
            }       
        if( settings['unDisplayCallBack']!==undefined){
            _unDisplayCallBack=settings['unDisplayCallBack'];
            }   
        if( settings['beforeKillCallBack']!==undefined){
            _beforeKillCallBack=settings['beforeKillCallBack'];
            }
        if( settings['killCallBack']!==undefined){
            _killCallBack=settings['killCallBack'];
            }

        //alert(settings['shadow']);
        //alert(_shadow);
        /************************本類私有變量******************************/

        

        /*********************本類內部變量********************/   
        var _this=this;             
        var _baseZindex=10000;
        var _domWidth=$(document).width();
        var _domHeight=$(document).height();
        /********************本類內部變量*******************/

        
        /********************本類私有函數**********************/
        var _getZindex=function(){/*獲得z-index->首先遍歷網頁div元素ID中含有popBox的DOM,獲得數量,然后本彈窗背景z-index=基數+當前數量+1,彈框z-index=基數+當前數量+2*/
                var _len=$('body').children('div').length;
                var _countDiv=0;
                var _divObj=$('body').children('div');
                var _reg=/^popBox_/;//正則表達式
                for(var i=0;i<_len;i++){
                    if(_reg.test(_divObj.eq(i).attr('ID'))){
                            _countDiv+=1;
                        }
                    }
                return _countDiv;//返回已有彈框的數量
            }
        var _getWinZindex=function(){//獲得彈窗的z-index
                var _winZindex=_baseZindex+_getZindex()+2;
                return _winZindex;
            }
        var _geWinBgZindex=function(){//獲得彈窗背景的z-index
                var _winBgZindex=_baseZindex+_getZindex()+1;
                return _winBgZindex;                
            }
        var _renderBg=function(){//渲染背景  www.49028c.com
                var _winBgZindex=_geWinBgZindex();
                //alert($(document).height());
                $('body').append('<div id="'+_this.ID+'_bg"></div>');//在body中插入一個半透明的背景
                $('#'+_this.ID+'_bg').addClass('popBox_bg').css({height:_domHeight,width:_domWidth,opcity:0}).css('z-index',_winBgZindex).fadeTo(_times,0.7);
            }
        var _creatWin=function(){//創建窗體
                $('body').append('<div id="'+_this.ID+'"></div>');
                _renderContent(_content);//渲染彈窗主體
                _initWin();//初始化窗體
            }
        var _initWin=function(){//初始化窗體
                var _winZindex=_getWinZindex();
                var _transHeight=0;
                if(_height=='auto'){
                    _transHeight='auto';
                    }else{
                        _transHeight=parseInt(_height)+'px';
                        }
                $('#'+_this.ID).css({width:parseInt(_width)+'px',height:_transHeight,position:'absolute',opticity:1.0,background:_bgColor}).css('z-index',_winZindex);
                if(_lock==false){
                    if(_moveHandle!==undefined&&_moveHandle!==false&&_moveHandle!==' '){
                        $('#'+_this.ID).children(_moveHandle).css('cursor','move');
                        //alert(_moveHandle);
                        //alert($('#'+_this.ID).children(_moveHandle).html());
                        }
                    }
                _locationWin();//為窗體定位
            }
        var _locationWin=function(){/*為窗體定位topLeft,topCenter,topRight,centerLeft,center,centerRight,bottomLeft,bottomCenter,bottomRight*/
            var _windowHeight=parseInt($(window).height());
            var _windowWidth=parseInt($(window).width());
            //alert(_windowWidth+_height);  
            var _left=(_windowWidth-parseInt(_width))/2;
            var _top=parseInt($(document).scrollTop())+parseInt(($(window).height()-$('#'+_this.ID).height())/2);
            $('#'+_this.ID).css({top:_top+'px',left:_left+'px'});
            }
        var _renderContent=function(content){//渲染彈窗主體
                $('#'+_this.ID).append(content);
            }
        var bindEvent=function(){//綁定事件
            if(_this.status!=='kill'&&_this.status!=='init'){
                        if(_closeButton!==undefined&&_closeButton!==' '&&_closeButton!==false){
                            $('#'+_this.ID+' '+_closeButton).css('cursor','pointer').live('click',function(e){
                            _this.unDisplay();
                            });                         
                        }//若設置了關閉(close)按鈕
                        if(_killButton!==undefined&&_killButton!==' '&&_killButton!==false){
                            $('#'+_this.ID+' '+_killButton).css('cursor','pointer').live('click',function(e){
                            _this.kill();
                            });                         
                        }//若設置了殺死(kill)按鈕
                    }
                if(_lock==false){
                    $('#'+_this.ID).draggable({cancel:''});
                    }
            }       
        /*********************本類私有函數*****************/

        
        /**********************本類公有函數******************/
        this.status='init';//當前狀態init->初始化狀態,display->display狀態,undisplay->undisplay狀態,kill->kill狀態
        this.ID='';
        var _ID=settings['ID'];
        if(_ID==' '||(typeof _ID)==undefined){
            throw new Error('ID不能為空');
            }else{
                this.ID='popBox_'+_ID;
                }
        this.display=function(){//顯示函數,如果狀態是init或者kill重新渲染頁面
            //alert(_this.status);
            if(_this.status=='init'||_this.status=='kill'){
                    _creatWin();//創建窗體
                    //$('#'+_this.ID).css('height',_domHeight);
                    if(_shadow==true){//渲染遮罩
                        /*alert(_shadow);*/
                        _renderBg();
                        }
                    _this.status='display';
                    _displayCallBack();
                }else{
                    $('#'+_this.ID).fadeIn(_times);
                    if(_shadow==true){
                        $('#'+_this.ID+'_bg').fadeIn(_times);
                        }
                    _this.status='display';
                    }
            //alert(typeof _displayCallBack);
            //alert(_this.status);
            bindEvent();
            }
        this.kill=function(){//徹底移除
            //alert(_this.status);
            //alert(_this.status);
            if(_this.status=='kill'||_this.status=='init'){
                //alert(_this.status);
                throw new Error('非法操作,當前狀態不允許kill');
            }
            if(_beforeKillCallBack!=undefined){
                    _beforeKillCallBack();
                    }
            $('#'+_this.ID).remove();
            if(_shadow==true){
                $('#'+_this.ID+'_bg').remove();
                }
            _this.status='kill';
            if(_killCallBack!=undefined){
                    _killCallBack();
                    }
            }
        this.unDisplay=function(){//隱藏函數
            if(_this.status=='init'||_this.status=='kill'){
                throw new Error('非法操作,當前狀態不允許undisplay');
                }
            if(_unDisplayCallBack!=undefined){
                _unDisplayCallBack();
                }
            $('#'+_this.ID).fadeOut(_times);
            $('#'+_this.ID+'_bg').fadeOut(_times);
            _this.status='undisplay';       
            }
        /**********************本類公有函數******************/

        
    }//popBox網頁彈窗

var errorBox=function(errorMsg){
        //alert(typeof errorBox);
            //alert(errorBox.length);
            var errorObj=new popBox({
            ID:'errorObj',
            bgColor:'#FFF',
            width:300,
            moveHandle:false,
            closeButton:false,
            height:'auto',
            times:200,
            lock:true,
            content:$('#errorBoxContent').html(),
            shadow:true,
            position:'center',
            displayCallBack:function(){ 
                    $('#'+errorObj.ID).find('.errorMessage').html();
                    $('#'+errorObj.ID).find('.errorMessage').html(errorMsg);
                    $('#'+errorObj.ID).find('.errorConfirm input').click(function(){
                        //alert('here');
                        errorObj.kill();
                        });
                },
            unDisplayCallBack:function(){
                throw new Error('錯誤不可以關閉,只可以Kill');//錯誤方法只能Kill,不能關閉
                },
            killCallBack:function(){
                //errorBox=null;
                }
            });
        errorObj.dispaly(); 
    }//錯誤彈窗
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久精品小视频| 欧美电影院免费观看| 欧美极品在线视频| 97国产suv精品一区二区62| 伊人青青综合网站| 日韩有码在线观看| 日韩一区二区av| 国产成人免费av电影| 成人久久一区二区三区| 欧美日韩精品在线视频| 亚洲老板91色精品久久| 91麻豆国产精品| 国产精品美女免费| 亚洲国产古装精品网站| 国产日本欧美在线观看| 国产精品99久久久久久白浆小说| www国产91| 国产精品成人一区二区| 国产成人一区二区在线| 久久噜噜噜精品国产亚洲综合| 国产精品美女久久久久av超清| 亚洲欧美国产日韩中文字幕| 国产欧美日韩精品专区| 亚洲japanese制服美女| 亚洲a∨日韩av高清在线观看| 91久久国产婷婷一区二区| 国产精品久久一| 91av中文字幕| 久久亚洲精品中文字幕冲田杏梨| 国产一区二区三区日韩欧美| 欧美成人四级hd版| 亚洲第一区中文字幕| 中文字幕亚洲欧美日韩2019| 亚洲国产中文字幕久久网| 亚洲品质视频自拍网| 米奇精品一区二区三区在线观看| 欧美极品欧美精品欧美视频| 欧美性猛交xxxxx免费看| 亚洲一区www| 日韩av色在线| 亚洲国产另类久久精品| 久久久精品免费| 国模视频一区二区三区| 日韩免费观看视频| 国产不卡精品视男人的天堂| 在线观看91久久久久久| 97国产精品久久| 97久久超碰福利国产精品…| 精品国产一区二区三区久久久| 亚洲男女性事视频| 国产精品视频男人的天堂| 欧亚精品在线观看| www.国产一区| 欧美日韩国产黄| 国产日韩欧美影视| 68精品国产免费久久久久久婷婷| 亚洲美女精品成人在线视频| 亚洲精品日韩丝袜精品| 国产精品丝袜一区二区三区| 奇米成人av国产一区二区三区| 精品国产欧美成人夜夜嗨| 日韩美女主播视频| 久久久久久伊人| 97人人爽人人喊人人模波多| 国产美女久久精品| 国产精品久久久久一区二区| 成人两性免费视频| 亚洲成色999久久网站| 成人性生交大片免费看视频直播| 亚洲人成在线播放| 久久99国产精品久久久久久久久| 国产亚洲精品久久久| 亚洲欧美精品中文字幕在线| 国产深夜精品福利| 久久久久久伊人| 国产精品视频大全| 亚洲福利在线观看| 国产精品av免费在线观看| 亚洲精品中文字幕女同| 欧美日韩免费看| 久久久精品网站| 国产精品1区2区在线观看| 国产91精品最新在线播放| 国产精品夫妻激情| 久久久天堂国产精品女人| 国产成人精品一区二区| 黑人极品videos精品欧美裸| 中文字幕欧美亚洲| 国产精品免费视频xxxx| 91精品久久久久久久久中文字幕| 欧美美最猛性xxxxxx| 国产精品777| 欧美性猛交xxxxx免费看| 91在线观看免费观看| 欧美激情在线有限公司| 国产欧美日韩高清| 91爱爱小视频k| 成年无码av片在线| 91精品国产综合久久香蕉| 亚洲精品www| 国产视频精品久久久| 亚洲精品久久久一区二区三区| 成人性生交大片免费看视频直播| 色综合久久天天综线观看| 亚洲国产精品成人精品| 久久久爽爽爽美女图片| 亚洲性生活视频在线观看| 777午夜精品福利在线观看| 亚洲黄色av网站| 色av中文字幕一区| 国产亚洲欧美日韩精品| 亚洲国产黄色片| 国产精品成人一区二区三区吃奶| 日韩在线视频一区| 精品国产视频在线| 国模精品一区二区三区色天香| 国产精品香蕉av| 亚洲肉体裸体xxxx137| 精品国产欧美成人夜夜嗨| 91视频8mav| 欧美日韩裸体免费视频| 欧美超级乱淫片喷水| 日韩电影中文字幕一区| xxxxx91麻豆| 色妞在线综合亚洲欧美| 欧美激情国产精品| 欧美一级片在线播放| 青青在线视频一区二区三区| 久久99热精品| 亚洲日韩欧美视频| 88国产精品欧美一区二区三区| 538国产精品视频一区二区| 亚洲欧美在线播放| 欧美激情综合色综合啪啪五月| 欧美日韩一区二区三区在线免费观看| 久久99国产精品自在自在app| 亚洲午夜激情免费视频| 91精品久久久久久久久| 在线观看日韩www视频免费| 欧美裸体xxxx| 国产精品视频地址| 最近2019好看的中文字幕免费| 久久久天堂国产精品女人| 国产成人aa精品一区在线播放| 国产69精品久久久| 日韩在线免费观看视频| 中文字幕在线视频日韩| 成人a视频在线观看| 国产欧洲精品视频| 日韩精品免费在线| 亚洲男女自偷自拍图片另类| 亚洲午夜性刺激影院| 正在播放国产一区| 欧美裸体xxxxx| 国产精品久久久久久久app| 川上优av一区二区线观看| 国产精品第二页| 久久偷看各类女兵18女厕嘘嘘| 国语自产精品视频在线看一大j8| 亚洲国产第一页| 精品国产福利视频| 亚洲欧美激情四射在线日| 亚洲91精品在线| 久久精品2019中文字幕|