第一,得到图片的width和height
第二,比较图片的width和height与box的width的h eight的大小,共有四种情况,
# 如果图片的width和height均小于box的width和heigh t,那么直接让图片上下左右居中即可,
# 如果图片的width大于box的width,hei ght小于box的height,让图片按照宽度等比例缩放,然后垂直居中,
# 如果图片的height大于box的hei ght,width小于box的width,让图片按照高度等比例缩放,然后左右居中,
# 如果图片的width和height均大于box的width和height,那么分别计算图片的widht和height和box的width和height的比,用较小的值作为缩放的比例 ,然后上下左右居中即可。
第三,将得到的图片放入对应的img节点中即可
{code}
<input type="button" name="" value="载入图片" οnclick="addImg('tt.jpg')" />
<script type="text/javascript">
</script>
{code}
当页面打开后,点击按钮后,会显示tt.jpg,但是如果重复点击会怎样呢?在IE中,除了第一次加载 图片时候显示正常,之后再点击就没有反应了,刷新也一样。FF中,每点击一次加载一张该图片。而这是什么原因呢?是因为在IE中只执行了一次onload或者是缓存的问 题吗?先改写一下代码,
{code}
<input type="button" name="" value="载入图片" οnclick="addImg('tt.jpg')" />
<script type="text/javascript">
</script>
{code}
现在再点击图片,就正常了,从此可见不是因为IE没有触发onload事件,而是因为IE中加载缓冲 区的速度太快,以至于没有运行到img.onload的时 候,图片已经被加载完毕了。因此,可以先告诉浏览器如何处理这张图片,然后再制定这张图片的来源。一般情况下,可以用complete来判断图片是否加载完 毕。对于 complete 属性来讲,IE是根据图片是否显示过来判断,就是说当加载的图片显示出来后,c omplete 属性的值才为true , 否则一直是false ,和以前是否加载过该张图片没有关系,即和缓存没有关系!可以写如下的函数来做到各个浏览器中预加载图片的兼容性。
{code}
var imgLoad = function (url) {
};
{code}