我想在页面上设一个照片栏,该DIV层大小为500*500像素,照片需要经常替换,照片的尺寸不固定,可能是横版也可能是竖版的。如何设置JS+CSS,使照片只显示居中部分的500*500像素,四周隐藏。
网上搜了一下,大多是一些已知照片大小后margin-top之类的裁剪。先前在CSS区也发了帖子,可能纯CSS不行,再贴到JS区,求适合我的JS+CSS代码。
网上搜了一下,大多是一些已知照片大小后margin-top之类的裁剪。先前在CSS区也发了帖子,可能纯CSS不行,再贴到JS区,求适合我的JS+CSS代码。
但考虑浏览器兼容的话,似乎就得用CSS+JS了。原理和你说的用margin-top之类的裁剪是一样的。
<div style="width:500px;height:500px;overflow:hidden;"><img src="大图片.jpg"
onload="this.style.marginTop=500-this.height;this.style.marginLeft=500-this.width;" /></div>
这样的话,当你随时改变了IMG的SRC之后,就会自动调整显示区。
onload="this.style.marginTop = (500-this.height)/2+'px';this.style.marginLeft=(500-this.width)/2+'px';"同时, 由于500px是与父div有关, 所以更加通用的方法:
onload="this.style.marginTop = (parseInt(this.parentNode.style.height) - this.height)/2 + 'px';this.style.marginLeft = (parseInt(this.parentNode.style.width) - this.width) /2 + 'px'"
这里不受500px约束, 可以任意改变外层div的宽高, 内部图片会自动居中, 不论大小. lz可以试一下