当前位置: 澳门新濠3559 > 编程 > 正文

发现有的时候并没有绑定成功,复制代码 代码如

时间:2019-12-27 17:08来源:编程
为了让markdown中的图片实现点击放大的效果,自己额外弄了个js,发现有的时候并没有绑定成功,可能是因为marked处理的太慢了,然后jQuery没有绑定成功,那么有办法让jQuery在marked执行完

为了让markdown中的图片实现点击放大的效果,自己额外弄了个js,发现有的时候并没有绑定成功,可能是因为marked处理的太慢了,然后jQuery没有绑定成功,那么有办法让jQuery在marked执行完成后再加载吗?$(function(){console.log("in")$("img").click(function(){console.log("ok")var_this=$(this);//将当前的pimg元素作为_this传入函数imgShow("#outerdiv","#innerdiv","#bigimg",_this);});functionimgShow(outerdiv,innerdiv,bigimg,_this){varsrc=_this.attr("src");//获取当前点击的pimg元素中的src属性$(bigimg).attr("src",src);//设置#bigimg元素的src属性/*获取当前点击图片的真实大小,并显示弹出层及大图*/$(bigimg).on("load",function(){varwindowW=$(window).width();//获取当前窗口宽度varwindowH=$(window).height();//获取当前窗口高度varrealWidth=this.width;//获取图片真实宽度varrealHeight=this.height;//获取图片真实高度varimgWidth,imgHeight;varscale=0.8;//缩放尺寸,当图片真实宽度和高度大于窗口宽度和高度时进行缩放if(realHeightwindowH*scale){//判断图片高度imgHeight=windowH*scale;//如大于窗口高度,图片高度进行缩放imgWidth=imgHeight/realHeight*realWidth;//等比例缩放宽度if(imgWidthwindowW*scale){//如宽度扔大于窗口宽度imgWidth=windowW*scale;//再对宽度进行缩放}}elseif(realWidthwindowW*scale){//如图片高度合适,判断图片宽度imgWidth=windowW*scale;//如大于窗口宽度,图片宽度进行缩放imgHeight=imgWidth/realWidth*realHeight;//等比例缩放高度}else{//如果图片真实高度和宽度都符合要求,高宽不变imgWidth=realWidth;imgHeight=realHeight;}$(bigimg).css("width",imgWidth);//以最终的宽度对图片缩放varw=(windowW-imgWidth)/2;//计算图片与窗口左边距varh=(windowH-imgHeight)/2;//计算图片与窗口上边距$(innerdiv).css({"top":h,"left":w});//设置#innerdiv的top和left属性$(outerdiv).fadeIn("normal");//淡入显示#outerdiv及.pimg});$(outerdiv).click(function(){//再次点击淡出消失弹出层$(this).fadeOut("normal");});}});这是目前的js,也是百度找的,可是能用

想做一个JS来获取图片的宽度跟高度?

<img id="t" src="图片地址" />
<script>
var img = document.getElementById("t")
var temp = new Image();
temp.onload = function(){
var style = img.style,
ratio = Math.min( 1,
Math.max( 0, 100 ) / this.width || 1,
Math.max( 0, 100 ) / this.height || 1
);
//设置预览尺寸
style.width = Math.round( this.width * ratio ) + "px";
style.height = Math.round( this.height * ratio ) + "px";
}
temp.src = img.src;
</script>  

1、什么时候需要获取图片真实的宽度和高度 在做pc网页的时候,有时候会考虑按照插...

复制代码 代码如下:/************************************自动适应的图片弹窗*********************************/ var autoImg=function{/*调整图片大小,等比例缩放argcs['maxHeight']=>最大高度,argcs['maxWidth']=>最大宽度,argcs['height']=>图片高度,argcs['width']=>图片宽度*/ var _maxHeight=''; var _maxWidth=''; var _newSize=[]; if{ _maxHeight=argcs['maxHeight']; } if{ _maxWidth=argcs['maxWidth']; } if{ throw new Error; } if{ throw new Error; } 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{ 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.append('澳门新濠3559 1'); $.css.css({position:'absolute',left:$+/2-.width.scrollTop/2-.width; /************图片预加载,重新调整窗口大小及位置**************/ var img=new Image(); var _imgWidth=0; var _imgHeight=0; img.src=imgSrc;//为img对象添加地址 // console.log; /*************************图片加载完成之后***************************/ img.onload=function(){ $.remove(); _imgWidth=img.width; _imgHeight=img.height; var argcs=[]; var winWidth=$; argcs['maxHeight']=750;//最大高度 argcs['maxWidth']=900;//最大宽度 argcs['height']=_imgHeight; argcs['width']=_imgWidth; var newWH=autoImg;//获得缩略后的图片宽和高 /************图片预加载,重新调整窗口大小及位置************/ $.css({width:newWH['width'],height:newWH['height'],top:parseInt.scrollTop+parseInt-newWH['height'])/2),left:$.scrollLeft()+parseInt-parseInt; $.html('澳门新濠3559 2'); /************图片预加载,重新调整窗口大小及位置**************/ $.css.click{ winImg.kill; }; /*************************图片加载完成之后***************************/ }, unDisplayCallBack:function(){ }, killCallBack:function; winImg.dispaly(); } popBox代码复制代码 代码如下://若使用移动功能,请先导入jQuery移动UI组件 var popBox=function{//弹窗函数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; } var _unDisplayCallBack=function(){//unDispaly回调函数 alert; } var _beforeKillCallBack=function(){ alert; }//kill之前的回调函数 var _killCallBack=function(){//kill回调函数 alert; } /*******************默认值*****************/ if(settings['closeButton']!==undefined){ //alert; _closeButton=settings['closeButton']; } if(settings['killButton']!==undefined){ //alert; _killButton=settings['killButton']; } if(settings['moveHandle']!==undefined){ //alert; _moveHandle=settings['moveHandle']; } /******************获得设置值********************/ /**settings['shadow']!=' ' && settings['shadow']!=undefined*/ if(settings['shadow']!==undefined){ //alert; _shadow=settings['shadow']; } if(settings['bgColor']!==undefined){ //alert; _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){ _澳门新濠3559,lock=settings['lock']; } if(settings['displayCallBack']!=undefined){ //alert; _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; //alert; /************************本类私有变量******************************/ /*********************本类内部变量********************/ var _this=this; var _baseZindex=10000; var _domWidth=$; var _domHeight=$; /********************本类内部变量*******************/ /********************本类私有函数**********************/ var _getZindex=function(){/*获得z-index->首先遍历网页div元素ID中含有popBox的DOM,获得数量,然后本弹窗背景z-index=基数+当前数量+1,弹框z-index=基数+当前数量+2*/ var _len=$.children.length; var _countDiv=0; var _divObj=$.children; var _reg=/^popBox_/;//正则表达式 for{ if(_reg.test.attr{ _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.jb51.net var _winBgZindex=_geWinBgZindex(); //alert; $.append;//在body中插入一个半透明的背景 $.addClass.css({height:_domHeight,width:_domWidth,opcity:0}).css('z-index',_winBgZindex).fadeTo; } var _creatWin=function.append; _renderContent;//渲染弹窗主体 _initWin();//初始化窗体 } var _initWin=function(){//初始化窗体 var _winZindex=_getWinZindex(); var _transHeight=0; if{ _transHeight='auto'; }else{ _transHeight=parseInt+'px'; } $.css({width:parseInt+'px',height:_transHeight,position:'absolute',opticity:1.0,background:_bgColor}).css; if{ if(_moveHandle!==undefined&&_moveHandle!==false&&_moveHandle!==' '){ $.children.css; //alert; //alert.children; } } _locationWin();//为窗体定位 } var _locationWin=function(){/*为窗体定位topLeft,topCenter,topRight,centerLeft,center,centerRight,bottomLeft,bottomCenter,bottomRight*/ var _windowHeight=parseInt; var _windowWidth=parseInt; //alert; var _left=(_windowWidth-parseInt/2; var _top=parseInt.scrollTop+parseInt-$.height; $.css({top:_top+'px',left:_left+'px'}); } var _renderContent=function{//渲染弹窗主体 $.append; } var bindEvent=function(){//绑定事件 if(_this.status!=='kill'&&_this.status!=='init'){ if(_closeButton!==undefined&&_closeButton!==' '&&_closeButton!==false){ $('#'+_this.ID+' '+_closeButton).css.live{ _this.unDisplay; }//若设置了关闭按钮 if(_killButton!==undefined&&_killButton!==' '&&_killButton!==false){ $('#'+_this.ID+' '+_killButton).css.live{ _this.kill; }//若设置了杀死按钮 } if{ $.draggable; } } /*********************本类私有函数*****************/ /**********************本类公有函数******************/ this.status='init';//当前状态init->初始化状态,display->display状态,undisplay->undisplay状态,kill->kill状态 this.ID=''; var _ID=settings['ID']; if(_ID==' '||==undefined){ throw new Error; }else{ this.ID='popBox_'+_ID; } this.display=function(){//显示函数,如果状态是init或者kill重新渲染页面 //alert; if(_this.status=='init'||_this.status=='kill'){ _creatWin();//创建窗体 //$.css; if{//渲染遮罩 /*alert;*/ _renderBg(); } _this.status='display'; _displayCallBack(); }else{ $.fadeIn; if{ $.fadeIn; } _this.status='display'; } //alert(typeof _displayCallBack); //alert; bindEvent(); } this.kill=function(){//彻底移除 //alert; //alert; if(_this.status=='kill'||_this.status=='init'){ //alert; throw new Error; } if(_beforeKillCallBack!=undefined){ _beforeKillCallBack.remove{ $.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.fadeOut; $.fadeOut; _this.status='undisplay'; } /**********************本类公有函数******************/ }//popBox网页弹窗 var errorBox=function{ //alert; //alert; var errorObj=new popBox({ ID:'errorObj', bgColor:'#FFF', width:300, moveHandle:false, closeButton:false, height:'auto', times:200, lock:true, content:$.html(), shadow:true, position:'center', displayCallBack:function.find.html.find.html; $.find('.errorConfirm input').click{ //alert; errorObj.kill; }, unDisplayCallBack:function(){ throw new Error;//错误方法只能Kill,不能关闭 }, killCallBack:function(){ //errorBox=null; } }); errorObj.dispaly(); }//错误弹窗

复制代码 代码如下:

js 获取图片的高度与宽度问题

<script>
var image = new Image();
image.src = 'www.baidu.com/img/logo.gif';
image.onreadystatechange=function(){
if (image.readyState=="complete") {
alert(["图片大小是:",image.width,image.height]);
}
}
</script>
再试一下呢。。。
应该是图片没有完全载入吧  

这样就是实现了图片的等比例放大缩小了。

js和jquery获取图片真实的宽度和高度,jsjquery获取宽度

1、什么时候需要获取图片真实的宽度和高度

在做pc网页的时候,有时候会考虑按照插入的图片的尺寸来判断图片是横图还是竖图。然后判断过后给予不同的展示方式!

另外一种就是在手机页面上,在新闻页插入的图片往往都是按照图片的原尺寸来展示,如果手机屏幕太小,太大的图就会超出去!这时候有两种解决办法

1)给所有的图片加上这样的样式

1
.news img{margin:5px auto; display:block;width:100%; height:auto;}
但是这种方式有另外一个问题就是,如果插入的图片本身就很小的话,也会被直接拉伸成100%显示,显然这是不合理的!那么这里就介绍另外一种方式就是通过js动态展示图片的尺寸!

2)js动态获取图片的尺寸

jquery方式

代码如下 复制代码
var _w = parseInt($(window).width());//获取浏览器的宽度
$(".new_mess_c img").each(function(i){
var img = $(this);
var realWidth;//真实的宽度
var realHeight;//真实的高度
//这里做下说明,$("<img/>")这里是创建一个临时的img标签,类似js创建一个new Image()对象!
$("<img/>").attr("src", $(img).attr("src")).load(function() {
/*
如果要获取图片的真实的宽度和高度有三点必须注意
1、需要创建一个image对象:如这里的$("<img/>")
2、指定图片的src路径
3、一定要在图片加载完成后执行如.load()函数里执行
*/
realWidth = this.width;
realHeight = this.height;
//如果真实的宽度大于浏览器的宽度就按照100%显示
if(realWidth>=_w){
$(img).css("width","100%").css("height","auto");
}
else{//如果小于浏览器的宽度按照原尺寸显示
$(img).css("width",realWidth+'px').css("height",realHeight+'px');
}
});
});

js方式

 

代码如下 复制代码
window.onload = function(){
function getViewSize() {//获取浏览器视口的宽高
return {
"w": window['innerWidth'] || document.documentElement.clientWidth,
(www.111cn.net) "h": window['innerHeight'] || document.documentElement.clientHeight
}
}
function getFullSize() {//获取浏览器最大的宽度
var w = Math.max(document.documentElement.clientWidth, document.body.clientWidth) +
Math.max(document.documentElement.scrollLeft, document.body.scrollLeft);
var h = Math.max(document.documentElement.clientHeight, document.body.clientHeight) +
Math.max(document.documentElement.scrollTop, document.body.scrollTop);
w = Math.max(document.documentElement.scrollWidth, w);
h = Math.max(document.documentElement.scrollHeight, h);
return {
"w": w,
"h": h
};
}
var _sv_w = getViewSize()["w"];
var _sf_w = getFullSize()["w"];
var _w = _sv_w;//这里用视口的宽度,具体视情况
var Imgarray = document.getElementsByTagName("img");
var realWidth;//真实的宽度
var realHeight;//真实的高度
for(var i =0;i<Imgarray.length;i++){
var imgtemp = new Image();//创建一个image对象
imgtemp.src = Imgarray[i].src;
imgtemp.index = i;//指定一个检索值,用于确定是哪张图
imgtemp.onload = function(){//图片加载完成后执行
var _stemp = this;//将当前指针复制给新的变量,不然会导致变量共用
realWidth = this.width;
realHeight = this.height;
if(realWidth >=_w )
{
Imgarray[_stemp.index].style.width = _w+'px';
Imgarray[_stemp.index].style.height = 'auto';
}
else{
Imgarray[_stemp.index].style.width = realWidth+'px';
Imgarray[_stemp.index].style.height = realHeight+'px';
}
}
}
}

上面两种方法中jquery比较简单,实现起来比较快,第二种比较复杂些,但是执行起来比jquery要快!
from:

: 复制代码 代码如下: a href=""img src="images/tmp_376x470.jpg" width="300" height="300" alt=""//a a href=""img src="images/tmp_409x265.jpg" width="300" heig...

复制代码 代码如下:

复制代码 代码如下:

样式:

$(function () {
    var imgs = $('a>img');
    imgs.each(function () {
        var img = $(this);
        var width = img.attr('width');//区域宽度
        var height = img.attr('height');//区域高度
        var showWidth = width;//最终显示宽度
        var showHeight = height;//最终显示高度
        var ratio = width / height;//宽高比
        img.load(function () {
            var imgWidth, imgHeight, imgratio;
            $('<img />').attr('src', img.attr('src')).load(function () {
                imgWidth = this.width;//图片实际宽度
                imgHeight = this.height;//图片实际高度
                imgRatio = imgWidth / imgHeight;//实际宽高比
                if (ratio > imgRatio) {
                    showWidth = height * imgRatio;//调整宽度太小
                    img.attr('width', showWidth).css('margin-left', (width - showWidth) / 2);
                } else {
                    showHeight = width / imgRatio;//调高度太小
                    img.attr('height', showHeight).css('margin-top', (height - showHeight) / 2);
                }
            });
        });
    });
});

a{width:300px;height:300px;background:#fff;border:1px solid #666;display:inline-block} /* 这里需要指定a标签的高宽,背景和边框为可选 */
脚本(jquery可自行添加):

html代码结构:

<a href=""><img src="images/tmp_376x470.jpg" width="300" height="300" alt=""/></a>
<a href=""><img src="images/tmp_409x265.jpg" width="300" height="300" alt=""/></a>
<a href=""><img src="images/tmp_572x367.jpg" width="300" height="300" alt=""/></a>

编辑:编程 本文来源:发现有的时候并没有绑定成功,复制代码 代码如

关键词: