最大高度,argcs['maxWidth']=" />
最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
當(dāng)前位置: 首頁 - 科技 - 知識(shí)百科 - 正文

JS自動(dòng)適應(yīng)的圖片彈窗實(shí)例_javascript技巧

來源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-27 21:10:33
文檔

JS自動(dòng)適應(yīng)的圖片彈窗實(shí)例_javascript技巧

JS自動(dòng)適應(yīng)的圖片彈窗實(shí)例_javascript技巧: 代碼如下:/************************************自動(dòng)適應(yīng)的圖片彈窗*********************************/ var autoImg=function(argcs){/*調(diào)整圖片大小,等比例縮放argcs['maxHeight']=>最大高度,argcs['maxWidth']=
推薦度:
導(dǎo)讀JS自動(dòng)適應(yīng)的圖片彈窗實(shí)例_javascript技巧: 代碼如下:/************************************自動(dòng)適應(yīng)的圖片彈窗*********************************/ var autoImg=function(argcs){/*調(diào)整圖片大小,等比例縮放argcs['maxHeight']=>最大高度,argcs['maxWidth']=
代碼如下:
/************************************自動(dòng)適應(yīng)的圖片彈窗*********************************/
var autoImg=function(argcs){/*調(diào)整圖片大小,等比例縮放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]').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)});
/************圖片預(yù)加載,重新調(diào)整窗口大小及位置**************/
var img=new Image();
var _imgWidth=0;
var _imgHeight=0;
img.src=imgSrc;//為img對(duì)象添加地址
// 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);//獲得縮略后的圖片寬和高
/************圖片預(yù)加載,重新調(diào)整窗口大小及位置************/
$('#'+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('');
/************圖片預(yù)加載,重新調(diào)整窗口大小及位置**************/

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

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

popBox代碼
代碼如下:
//若使用移動(dòng)功能,請(qǐng)先導(dǎo)入jQuery移動(dòng)UI組件
var popBox=function(settings){//彈窗函數(shù)settings=[]
//alert(typeof settings['width']);
//alert(settings['displayCallBack']);
/************************本類私有變量*****************************/
/*******************默認(rèn)值*****************/
var _shadow=true;//是否有遮罩true/false
var _closeButton=false;//關(guān)閉按鈕false/dom元素
var _killButton=false;//kill按鈕false/dom元素
var _moveHandle=false;//拖動(dòng)手柄false/dom元素
var _width=650;//寬,
var _bgColor='#FFF';//背景樣式
var _height='auto';//高
var _content='沒有內(nèi)容';//內(nèi)容
var _position='center';/*位置topLeft,topCenter,topRight,center,bottomLeft,bottomRight,bottomCenter*/
var _lock=true;//是否鎖定
var _times=500;//顯示,隱藏的時(shí)間
var _displayCallBack=function(){//dispaly回調(diào)函數(shù)
alert('display');
}
var _unDisplayCallBack=function(){//unDispaly回調(diào)函數(shù)
alert('unDisplay');
}
var _beforeKillCallBack=function(){
alert('beforeKill');
}//kill之前的回調(diào)函數(shù)
var _killCallBack=function(){//kill回調(diào)函數(shù)
alert('kill');
}
/*******************默認(rèn)值*****************/
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'];
}
/******************獲得設(shè)置值********************/
/**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);
/************************本類私有變量******************************/



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


/********************本類私有函數(shù)**********************/
var _getZindex=function(){/*獲得z-index->首先遍歷網(wǎng)頁div元素ID中含有popBox的DOM,獲得數(shù)量,然后本彈窗背景z-index=基數(shù)+當(dāng)前數(shù)量+1,彈框z-index=基數(shù)+當(dāng)前數(shù)量+2*/
var _len=$('body').children('div').length;
var _countDiv=0;
var _divObj=$('body').children('div');
var _reg=/^popBox_/;//正則表達(dá)式
for(var i=0;i<_len;i++){
if(_reg.test(_divObj.eq(i).attr('ID'))){
_countDiv+=1;
}
}
return _countDiv;//返回已有彈框的數(shù)量
}
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.gxlcms.com
var _winBgZindex=_geWinBgZindex();
//alert($(document).height());
$('body').append('');//在body中插入一個(gè)半透明的背景
$('#'+_this.ID+'_bg').addClass('popBox_bg').css({height:_domHeight,width:_domWidth,opcity:0}).css('z-index',_winBgZindex).fadeTo(_times,0.7);
}
var _creatWin=function(){//創(chuàng)建窗體
$('body').append('');
_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();
});
}//若設(shè)置了關(guān)閉(close)按鈕
if(_killButton!==undefined&&_killButton!==' '&&_killButton!==false){
$('#'+_this.ID+' '+_killButton).css('cursor','pointer').live('click',function(e){
_this.kill();
});
}//若設(shè)置了殺死(kill)按鈕
}
if(_lock==false){
$('#'+_this.ID).draggable({cancel:''});
}
}
/*********************本類私有函數(shù)*****************/


/**********************本類公有函數(shù)******************/
this.status='init';//當(dāng)前狀態(tài)init->初始化狀態(tài),display->display狀態(tài),undisplay->undisplay狀態(tài),kill->kill狀態(tài)
this.ID='';
var _ID=settings['ID'];
if(_ID==' '||(typeof _ID)==undefined){
throw new Error('ID不能為空');
}else{
this.ID='popBox_'+_ID;
}
this.display=function(){//顯示函數(shù),如果狀態(tài)是init或者kill重新渲染頁面
//alert(_this.status);
if(_this.status=='init'||_this.status=='kill'){
_creatWin();//創(chuàng)建窗體
//$('#'+_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('非法操作,當(dāng)前狀態(tài)不允許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(){//隱藏函數(shù)
if(_this.status=='init'||_this.status=='kill'){
throw new Error('非法操作,當(dāng)前狀態(tài)不允許undisplay');
}
if(_unDisplayCallBack!=undefined){
_unDisplayCallBack();
}
$('#'+_this.ID).fadeOut(_times);
$('#'+_this.ID+'_bg').fadeOut(_times);
_this.status='undisplay';
}
/**********************本類公有函數(shù)******************/


}//popBox網(wǎng)頁彈窗

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('錯(cuò)誤不可以關(guān)閉,只可以Kill');//錯(cuò)誤方法只能Kill,不能關(guān)閉
},
killCallBack:function(){
//errorBox=null;
}
});
errorObj.dispaly();
}//錯(cuò)誤彈窗

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

JS自動(dòng)適應(yīng)的圖片彈窗實(shí)例_javascript技巧

JS自動(dòng)適應(yīng)的圖片彈窗實(shí)例_javascript技巧: 代碼如下:/************************************自動(dòng)適應(yīng)的圖片彈窗*********************************/ var autoImg=function(argcs){/*調(diào)整圖片大小,等比例縮放argcs['maxHeight']=>最大高度,argcs['maxWidth']=
推薦度:
標(biāo)簽: 圖片 js 圖片自動(dòng)
  • 熱門焦點(diǎn)

最新推薦

猜你喜歡

熱門推薦

專題
Top