js或JQ能处理么?父容器宽高固定, 当图片宽高小于父容器宽高时,等比放大到和父容器宽高一样,当图片宽高大于父容器宽高时,图片等比缩小和父容器宽高一样。 比如 父容器 宽高100*100,如果图片是50*50,那就让图片等比放大到100*100,如果图片是200*200,那就让图片等比缩小到100*100...最终的目的是,让图片自适应填充满父容器宽高,图片也不会变形javascriptjshtmlcssjquery
解决方案 »
- jquery appendTo 方法不能立刻生效??
- 请教一个关于js数组应用的问题,期盼各位精英的答复,谢谢!
- 帮人帮到底。。。。js很烦人啊
- 有关js定位div的问题?
- 这段代码在IE6上可以,但在IE7上就是不行,哪位帮忙看下是什么原因,谢谢。
- 求助... 一个无限级智能导航菜单的效率优化问题...
- 请问如何在右键另存为时候 对话框中显示的默认另存文件名是我指定的名字,和服务器上文件名不同
- 留言时输入的url地址提交后可以直接点击,请问是怎么完成的?
- 大家过来看看!
- 点击按钮windo.open("xxx.html","win1")打开同一个页面后怎么使上一次的数据保留
- js绑定动态参数的方法
- dojo技术问题
你的HTML和CSS好像不太熟悉啊
建议你亲自试一试再来否定……
http://v5blog.lofter.com/post/80054_c3771
但也不能简单设置宽或者高为100%,还得分情况。最好的办法用js统计应该设置宽还是高为100%。
<html>
<head>
<meta charset="utf-8">
<title>无标题文档</title>
<script type="text/javascript" language="javascript">
window.onload=function(){
changeImgSize();
}
function changeImgSize(){
var getContainer=document.getElementById('imgcontainer');
var getIMG=getContainer.getElementsByTagName('img')[0];
var fw=getContainer.offsetWidth-(2*getContainer.clientLeft);
var fh=getContainer.offsetHeight-(2*getContainer.clientTop);
var iw=getIMG.width;
var ih=getIMG.height;
var m=iw/fw;
var n=ih/fh;
if(m>=1&&n<=1)
{
iw=Math.ceil(iw/m);
ih=Math.ceil(ih/m);
getIMG.width=iw;
getIMG.height=ih;
}
else if(m<=1&&n>=1)
{
iw=Math.ceil(iw/n);
ih=Math.ceil(ih/n);
getIMG.width=iw;
getIMG.height=ih;
}
else if(m>=1&&n>=1)
{
getMAX=Math.max(m,n);
iw=Math.ceil(iw/getMAX);
ih=Math.ceil(ih/getMAX);
getIMG.width=iw;
getIMG.height=ih;
}
if(getIMG.height<fh)
{
var getDistance=Math.floor((fh-getIMG.height)/2);
getIMG.style.marginTop=getDistance.toString()+"px";
}
}
</script>
<style>
.sy_pic{ width:200px; height:300px; border:#000 solid 5px; text-align:center; display:table-cell; vertical-align:central; display:block;}
.sypic img{}
</style>
</head><body>
<div class="sy_pic" id="imgcontainer"><img src="images/444.jpg" /></div>
</body>
</html>
var w = img.width;
var h = img.height;
/*当图片宽高超过窗口宽高,则等比例缩小*/
if(options.FixedImg)
{
if(w>h&&w>$(window).width())
{
var neww=$(window).width();
h=h*neww/w;
w=neww;
}
if(h>w&&h>$(window).height())
{
var newh=$(window).height();
w=w*newh/h;
h=newh;
}
}
img.style.width = w + "px";
img.style.height = h + "px";我想对的是当前窗口,如果是容器,你可以相应替换掉
<div style="height:100px;width:100px;"><img src="xx.jpg" height="100%" width="100%" /></div>
这完全符合你的要求啊
<div style="height:100px;width:100px;"><img src="xx.jpg" height="100%" width="100%" /></div>
这完全符合你的要求啊你找个图片200*800,div宽高:800*200,你100%试试
<div style="height:100px;width:100px;"><img src="xx.jpg" height="100%" width="100%" /></div>
这完全符合你的要求啊你找个图片200*800,div宽高:800*200,你100%试试
哦,明白了,我这样做的话,图片变形了,但并不会撑破容器的。
很多做法是让width为100%,把容器设置成overflow:hidden,这样虽然可能只显示一部分图片,但图片总是充满容器并且不变形。
<head>
<title>固定容器内等比例缩放图片</title><style type="text/css">
<!--
li{
display: table-cell;list-style:none;border:#333 solid1px;width:230;height:210px;padding:0px;margin:5px;text-align:center; vertical-align:middle;
}
-->
</style><script language="JavaScript">
<!--
//图片按比例缩放
var flag=false;
function DrawImage(ImgD){
var image=new Image();
var iwidth = 220; //定义允许图片宽度,当宽度大于这个值时等比例缩小
var iheight = 200; //定义允许图片高度,当宽度大于这个值时等比例缩小
image.src=ImgD.src;
if(image.width>0 && image.height>0){ //假如图片长宽都不为零
flag=true;
if(image.height/image.width>= iheight/iwidth){ //通过正弦值判断图片缩放后是否偏高
if(image.height>iheight){ //如果图片比设定的要高
ImgD.height=iheight;
ImgD.width=(image.width*iheight)/image.height;
}else{
ImgD.width=image.width;
ImgD.height=image.height;
} ImgD.alt=image.width+"×"+image.height;
} else{ //如果图片比例 小于 设定的比例
if(image.width>iwidth){
ImgD.width=iwidth;
ImgD.height=(image.height*iwidth)/image.width;
}else{
ImgD.width=image.width;
ImgD.height=image.height;
}
ImgD.alt=image.width+"×"+image.height;
}
}
}
//调用:<img src="图片" onload="javascript:DrawImage(this)">
//-->
</script></head>
<body>
<li><img src="1.jpg" onload="javascript:DrawImage(this)"></li>
<li><img src="2.jpg" onload="javascript:DrawImage(this)"></li>
<li>文字测试也不少</li>
</body>
</html>