[jQuery] 按比例缩小图片

发布时间:2013年02月28日 / 分类:网络编程 / 29,417 次围观 / 一次吐槽

 

其实网上有很多教程的,不过他们基本只是提供如下代码


 

        /*

         *

         
*/

        $('.public-left img').each(function(){

            var x = 100; //填入目标图片宽度
            var y = 100; //填入目标图片高度
            var w=$(this).width();

            var h=$(this).height();//获取图片宽度、高度
            if (w > x) { //图片宽度大于目标宽度时
                var w_original=w, h_original=h;

                h = h * (x / w); //根据目标宽度按比例算出高度
                w = x; //宽度等于预定宽度
                if (h < y) { //如果按比例缩小后的高度小于预定高度时
                    w = w_original * (y / h_original); //按目标高度重新计算宽度
                    h = y; //高度等于预定高度
                }

            }

            $(this).attr({width:w,height:h});

        });


 

直接这样使用的话,们拿到的 $(this).width()和 $(this).height()得到的值都会是0!因为图片没有加载完,js就已经去读取了,所以肯定得到的值都是0。

正确的做法是,要用 $(window).load(),等页面加载完了再执行上面代码,完整代码如下:


 

        $(window).load(function(){

        /*

         *

         
*/

        $('.public-left img').each(function(){

            var x = 100; //填入目标图片宽度
            var y = 100; //填入目标图片高度
            var w=$(this).width();

            var h=$(this).height();//获取图片宽度、高度
            if (w > x) { //图片宽度大于目标宽度时
                var w_original=w, h_original=h;

                h = h * (x / w); //根据目标宽度按比例算出高度
                w = x; //宽度等于预定宽度
                if (h < y) { //如果按比例缩小后的高度小于预定高度时
                    w = w_original * (y / h_original); //按目标高度重新计算宽度
                    h = y; //高度等于预定高度
                }

            }

            $(this).attr({width:w,height:h});

        });

    });


 

 from:http://www.cnblogs.com/davidhhuan/archive/2012/11/20/2778821.html

标签:图片缩小, jQuery

赞 (0) 本文链接: http://www.xiangguoqi.cn/read/1843.html [复制分享 ](转载时请保留 )



↑上一篇:typecho 创建Google自定义搜索
↓下一篇:Win 8下安装PHPnow的办法 无觅关联推荐,快速提升流量
热评文章
默认:长尾词库
猜你喜欢
文章分类
最新文章
最近回复
    岁月痕迹