<!DOCTYPE html>
<html>
<head>
<style>
div{width:200px;height:200px;overflow:hidden;border:1px solid red;background:gray;padding:5px;text-align:center;}
img{padding:5px;border:1px solid white;background:gray;}
</style>
</head>
<body>
<script>
function imgResize(img){
var w = img.width;
var h = img.height;
if (img.getAttribute('height', 2) && (w > h) ) {//2for ie
img.removeAttribute('height');
img.setAttribute('width', h);
} else if (img.getAttribute('width', 2) && (h > w) ) {
img.removeAttribute('width');
img.setAttribute('height', w);
}
}
</script>
<div>
<img src="h.png" width="200" οnlοad="imgResize(this);" />
</div>
<div>
<img src="w.png" width="200" οnlοad="imgResize(this);" />
</div>
<div>
<img src="w.png" width="200" οnlοad="imgResize(this);" />
</div>
<div>
<img src="w.png" width="200" οnlοad="imgResize(this);" />
</div>
</body>
</html>
<html>
<head>
<style>
div{width:200px;height:200px;overflow:hidden;border:1px solid red;background:gray;padding:5px;text-align:center;}
img{padding:5px;border:1px solid white;background:gray;}
</style>
</head>
<body>
<script>
function imgResize(img){
var w = img.width;
var h = img.height;
if (img.getAttribute('height', 2) && (w > h) ) {//2for ie
img.removeAttribute('height');
img.setAttribute('width', h);
} else if (img.getAttribute('width', 2) && (h > w) ) {
img.removeAttribute('width');
img.setAttribute('height', w);
}
}
</script>
<div>
<img src="h.png" width="200" οnlοad="imgResize(this);" />
</div>
<div>
<img src="w.png" width="200" οnlοad="imgResize(this);" />
</div>
<div>
<img src="w.png" width="200" οnlοad="imgResize(this);" />
</div>
<div>
<img src="w.png" width="200" οnlοad="imgResize(this);" />
</div>
</body>
</html>
因为业务流程并不支持先获取图片再显示,而是先显示再调整,所以,逻辑是:先显示,某边越过时,隐藏,加载完成后js进行调适.体验效果比无调适稍好.