转载:通用的jquery图片大小自适应代码

通用的jquery图片大小自适应代码
 所谓通用,即:
  1、任何CMS均可使用;
  2、只需要把这个代码添加到内容页模板的<head></head>之间,$('#content img)可以指定自适应某一区域的图片,$('img')就是整个网页的所有图片了;
  3、不需要任何编程基础就能使用。
var max_width=650;
    $("#content img").each(function(){
        if($(this).width() > max_width) {
            var ratio=max_width/$(this).width();
            $(this).width(max_width);
            var imgheight=$(this).height()*ratio;
            $(this).height(imgheight);
        }
    });
第二种 ============================
所谓通用,即:  
1、任何CMS均可使用;  
2、只需要把这个代码添加到内容页模板的最下方,或者直接添加到footer.htm等公共页脚模板中;  
3、不需要任何编程基础就能使用。
一 般图片尺寸超过文章内容页文章内容显示区域宽度时虽然可以通过CSS来实现,如可以设置max-width:600px等属性,但是浏览器兼容性有问题, 又如直接用CSS中表达式expression中通过判断图片宽高来设置CSS的,但因为涉及安全性问题,可能很多浏览器都显示不出效果。
那最好的解决办法,莫过JS了,网上有一部流传的JS包括落叶博客里的这篇文章中的解决方法,都需要在图片中加onload属性来调用函数实现,但是这样的麻烦之处是要么需要改CMS的代码,要么需要在添加文章时手动添加,比较麻烦。  
下面就是利用jquery简单实现自动识别且自动缩小图片的通用解决方案:
<script language="JavaScript" src="http://www.zzsky.cn/effect/images/jquery-1.4.2.min.js"></script>
<script language="javascript">
    $.each($("#content img"),function()
{//把“content”修改为内容页显示内容的DIV的ID属性值 
var image=new Image(); 
image.src=$(this).attr('src'); 
if(image.width>0 &amp;&amp; image.height>0)
{    if(image.width>=600)
{
//三处“600”修改为需要等比例缩小的最大图片宽度  
  $(this).attr('width',600);   
$(this).attr('height',(image.height*600)/image.width); 

}
}
    );
</script>
  上面代码需要修改的地方就是上面注释的两处。代码的意思是:查找文章内容页中id=content的DIV区域中的图片,并判断宽度,如果宽度大于指定宽度(如600)则等比例缩小。
代码只需要添加到模板的最下方即可。调用的js可以自己保存,当然很多CMS如PHPCMS、DEDECMS都已经加截了jquery.min.js,上面第一行可以不要。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

Grow your business fast with

Suku