zoukankan      html  css  js  c++  java
  • [jQuery] 按比例缩小图片

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

            /*
             *
             
    */
            $('.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({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({w,height:h});
            });
        });
  • 相关阅读:
    忽然背后冒冷汗
    随机获取中国境内ip地址的php代码
    复制粘贴的句子
    Winform使用BackGroundWorker代替线程执行后台代码
    在IE中测试调用Web Service
    在存储过程中编写正确的事务处理代码
    【转】使用HttpWebRequest POST图片等文件,带参数
    LINQ to Entities 不识别方法"System.String ToString()"
    Asp.net 出现:HTTP 错误 404.0 Not Found
    C# 用内存映射文件读取大日志文件(.log)
  • 原文地址:https://www.cnblogs.com/davidhhuan/p/2778821.html
Copyright © 2011-2022 走看看