aspx页面 控制图片大小

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

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

脚本:
<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:
this.imgPro.Attributes.Add("onload", "javascript:if   (this.width>365)   this.width=365;");

以上几种方法都不行.
求教,能完美控制的方法.
...全文
347 21 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
一品梅 2008-02-03
  • 打赏
  • 举报
回复
mark.
cat_hsfz 2008-02-03
  • 打赏
  • 举报
回复
直接在服务器端批量生成缩略图吧,小于365px的图片,缩略图就是原图,这就简单了。
我在地球 2008-02-03
  • 打赏
  • 举报
回复
img onload 事件 可以 js 实现
cybonline 2008-02-03
  • 打赏
  • 举报
回复
在Body的Onload事件里加上你的方法2的js:
<Body ... onload="changeImg(this)"..>
js改一改:
function changeImg()将参数去掉。
试试看。
ReyZhang 2008-02-03
  • 打赏
  • 举报
回复


js 是可以控制的,ls诸位的可以试试
lovehongyun 2008-02-03
  • 打赏
  • 举报
回复
生成缩略图比较好..同意12楼

否则的话.你的图片可能会变的很难看.
staryjk 2008-02-03
  • 打赏
  • 举报
回复
<script language="JavaScript">
<!--
//图片按比例缩放
var flag=false;
function DrawImage(ImgD){
var image=new Image();
var iwidth = 102; //定义允许图片宽度,当宽度大于这个值时等比例缩小
var iheight = 80; //定义允许图片高度,当宽度大于这个值时等比例缩小
image.src=ImgD.src;
if(image.width>0 && image.height>0){
flag=true;
if(image.width/image.height>= iwidth/iheight){
if(image.width>iwidth){
ImgD.width=iwidth;
ImgD.height=(image.height*iwidth)/image.width;
}else{
ImgD.width=image.width;
ImgD.height=image.height;
}


}
else{
if(image.height>iheight){
ImgD.height=iheight;
ImgD.width=(image.width*iheight)/image.height;
}else{
ImgD.width=image.width;
ImgD.height=image.height;
}
}
}
}
//
//-->
</script>

调用:<img src="图片" onload="javascript:DrawImage(this)">
meheartfly 2008-02-03
  • 打赏
  • 举报
回复
up12
LutzMark 2008-02-03
  • 打赏
  • 举报
回复
up 12楼
jeremy 2008-02-03
  • 打赏
  • 举报
回复
贴出一段我的代码:
"<a href='ImageView.aspx?IMG=uploads/"+names[i]+"' target='_blank'><img src='uploads/"+names[i]+"'onload='javascript:if(this.width>screen.width-320)this.width=screen.width-320' border=0 alt='点击放大看原图'></a><br>";
}
LikeCode 2008-02-02
  • 打赏
  • 举报
回复
浏览器一遇上脚本时,就要解析这段脚本,这样反反复复解析脚本与CSS资源开销是很大的,就象在HTML里,脚本要尽量集中,不要分散,因为浏览器与遇到脚本就是重新解释这些脚本,很费劲的.
zyjmib 2008-02-02
  • 打赏
  • 举报
回复
To:LikeCode
为什么"建议不要在CSS里嵌入脚本,据说这样的网页运行起来效率极差。"?
是否有详细的介绍,谢谢。
octverve 2008-02-01
  • 打赏
  • 举报
回复
http://hi.baidu.com/injava/blog/item/2735c743b9430c1173f05dcf.html
希望对你有帮助~
LikeCode 2008-02-01
  • 打赏
  • 举报
回复
建议不要在CSS里嵌入脚本,据说这样的网页运行起来效率极差
LikeCode 2008-02-01
  • 打赏
  • 举报
回复
<img src="1.jpg" onload="if(this.width>356)this.width=365" alt="#" />
  • 打赏
  • 举报
回复
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("图片的id" ,"365");
}
zhuanshen712 2008-02-01
  • 打赏
  • 举报
回复
如果是服务器段控件,最好是用:
var mypic = document.getElementById(" <%=mypic.ClientID% >");
wdzr_826 2008-02-01
  • 打赏
  • 举报
回复
在onload写试试看
showrock 2008-02-01
  • 打赏
  • 举报
回复
对的,是应该在body 的onload里写改变图片大小的方法

<Body onload="changeImg(imgPro)">
zhuanshen712 2008-02-01
  • 打赏
  • 举报
回复
错了,onload="changeImg()"
js:
function changeImg()
{
var xw=365;
var mypic=document.getelenmentbyid("图片id");
var width = mypic.width;
var height = mypic.height;
...
加载更多回复(1)

62,243

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧