处理用户上传图片大小不一,前台显示的问题

针对用户上传图片尺寸不一致导致的前端显示问题,解决方案是在每个图片元素上设置onload属性,确保图片加载完成后进行适当处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

  处理用户上传图片大小不一,前台显示的问题:

 

 

 

function  imgonLoad() {
    
var w = this.width;
    
var h = this.height;
    
var i = this.i;    
    
//alert(w+'=='+h+'====='+i);
    if(125*h/w>130){                                
        document.getElementById(
'pic'+i).height=130;
        document.getElementById(
'pic'+i).width=125*w/h;
    }

}


 
function  imgLoad(index,path) {
                        
try{
                            
var imgT = new Image();
                            imgT.i
=index;
                            imgT.onload 
= imgonLoad;
                            imgT.src 
= path;
                        }
catch(e){                            
                        }

                        }

 

给每个图片设置,onload属性,

 

  < tr >
                                  
< td  align ="center"  valign ="middle"  height ="139"  background ="../images/festival/bar_01.gif"  class ="festival_pic" >< href ="#"  onClick ="MM_openBrWindow('<%=root%>/springart/ArtWorkAction.do?method=doViewDetailIndexShow&imageFileId=<%=vo.getImageFileId() %>&isAddHitRate=true&relationPk=<%=vo.getContentId() %>&tableName=content','作品瀏覽','scrollbars=yes,width=720,height=400')"    >< img  id ="pic0"  src ='<%=request.getContextPath()+gov.cca.ccasp.frontsite.common.helper.ImagePathHelper.getImageURL(vo.getImageUrl(),"small")  % > ' οnerrοr="showDefaultListImage(this)"   width="125"    border="0" > </ a ></ td >
                                 
< script >
                                 imgLoad(
0,'<%=request.getContextPath()+ImagePathHelper.getImageURL(vo.getImageUrl(),"small") %>');
                                
</ script >
                                
</ tr >

 

 

 参考:

var  img  =   new  image();
img.src
= src;
img.onload 
=   function () {
      document.getElementById(
'img').src = img.src;
}

 

 

function  draw()  {
    
var ctx = document.getElementById('canvas').getContext('2d');
    
var img = new Image();
    img.src 
= 'images/rhino.jpg';
    img.onload 
= function(){
      
for (i=0;i<4;i++){
        
for (j=0;j<3;j++){
          ctx.drawImage(img,j
*50,i*38,50,38);
        }

      }

    }

  }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值