日期:2014-05-16  浏览次数:20312 次

完美控制aspx页面显示图片的大小
在一个aspx的页面上有一个图片.要求宽度大于365px时设置宽度为365px;小于365px时图片原尺寸显示.
我用了以下几种方法都不行
1:css样式\
HTML code
<img id="imgPro" runat="server" class="imgInfo" />
.imgInfo
{
 max-width:365px;
 width:expression(document.body.clientWidth>365?"365px":"auto");
 overflow:hidden;
} 


2:CS代码控制调用脚本
C# code
this.imgPro.Attributes.Add("onload", "changeImg(this)");//有时可以控制,有时图片就原样显示,必须刷新几次才行

脚本:
HTML code
 <script language="javascript" type="text/javascript">  
<!--
function changeImg(mypic){
var xw=365;
                                                           
var width = mypic.width;
var height = mypic.height;
var bili = width/height;

var A=width/xw;                                                         

if(A>1)
{
    mypic.width=xw;
    mypic.height=xw/bili;
}                                                     
}
//-->           
</script>

3:
C# code
this.imgPro.Attributes.Add("onload", "javascript:if   (this.width>365)   this.width=365;");

以上几种方法都不行.
求教,能完美控制的方法.


------解决方案--------------------
JScript code
function ImgW(ImgID,Width){
    var obj = document.getElementById(ImgID);
    if(obj != null)
    {
        var w = obj.width;
        var h = obj.height;

        if (w > Width){
            obj.width = Width;
            obj.height = h*Width/w;
        }
    }
};
ImgW("aa" ,"365");

------解决方案--------------------
function ImgW(ImgID,Width){
var obj = document.getElementById(ImgID);
if(obj != null)
{
var w = obj.width;
var h = obj.height;

if (w > Width){
obj.width = Width;
obj.height = h*Width/w;
}
}
};
ImgW("aa" ,"365");

------解决方案--------------------
嘿嘿~~~1楼正解
不过如果考虑执行顺序,应该

JScript code
function ImgW(ImgID,Width){
    var obj = document.getElementById(ImgID);
    if(obj != null)
    {
        var w = obj.width;
        var h = obj.height;

        if (w > Width){
            obj.width = Width;
            obj.height = h*Width/w;
        }
    }
};
window.onload=function()
{
  ImgW("aa"   ,"365"); 
}