如何解决谷歌浏览器下jquery无法获取图片的尺寸


Posted in Javascript onSeptember 10, 2015

代码如下:

$(document).ready(function(){ 
 var img_h=$img.height();  
 var img_w=$img.width();  
})

以上代码在IE和火狐中没有问题,但是在谷歌中可能会出现问题,之所以没货的尺寸就是因为图片没有加载完成。

修改方法如下:

$(document).ready(function(){ 
 $img.load(function(){  
  var img_h=$img.height();  
  var img_w=$img.width();  
 }) 
})

还有点时间,接下来在给大家分享jQuery动态改变图片显示大小的方法,具体内容如下。

当我们要显示后台传过来若干个尺寸不一的图片时,为了保证图片大小的一致性及比例的协调,需要动态改变图片显示尺寸。通过搜索,我们可以从网上找到实现此功能的jQuery代码如下。这段代码可以使图片的大小保持在一定范围内,如果图片的原始尺寸都大于max*值,则显示出来的图片宽度都相等。

原始代码:

$(document).ready(function() {
   $('.post img').each(function() {
   var maxWidth = 100; // 图片最大宽度
   var maxHeight = 100;  // 图片最大高度
   var ratio = 0; // 缩放比例
   var width = $(this).width();  // 图片实际宽度
   var height = $(this).height(); // 图片实际高度
   // 检查图片是否超宽
   if(width > maxWidth){
     ratio = maxWidth / width;  // 计算缩放比例
     $(this).css("width", maxWidth); // 设定实际显示宽度
     height = height * ratio;  // 计算等比例缩放后的高度 
     $(this).css("height", height); // 设定等比例缩放后的高度
   }
   // 检查图片是否超高
   if(height > maxHeight){
     ratio = maxHeight / height; // 计算缩放比例
     $(this).css("height", maxHeight);  // 设定实际显示高度
     width = width * ratio;  // 计算等比例缩放后的高度
     $(this).css("width", width * ratio);  // 设定等比例缩放后的高度
   }
 });
 });

在我的js代码中,也采取了这种写法。然而在不同的浏览器测试效果时,发现此种写法不能适应chrome浏览器(chrome版本号为10.0.648.204),会产生图片以原有尺寸显示出来的bug。后来把$('.post img').each()的代码用$(window).load()方法包装起来,就解决了chrome浏览器显示不正确的问题。那么在chrome浏览器中为什么会产生bug,并且$(document).ready和$(window).load有什么区别呢?

原来document ready事件是在HTML文档载入即DOM准备好就开始执行了,即使图片资源还没有加载进来。而window load事件执行的稍晚一些,它是在整个页面包括frames, objects和images都加载完成后才开始执行的。从这种区别可以分析出chrome浏览器在对于图片不采用$(window).load()方法处理时,图片载入与动态改变图片的js代码执行顺序不确定。

----------------------------------------------------

上面是文章的全部类容,关于上面的代码,放到我的页面中时获取图片高度时会报错,提示没有提供width方法

var width = $(this).width();  // 图片实际宽度
var height = $(this).height(); // 图片实际高度

故修改代码如下:

jQuery(window).load(function () {
      jQuery("div.product_info img").each(function () {
        DrawImage(this, 680, 1000);
      });
    });
    function DrawImage(ImgD, FitWidth, FitHeight) {
      var image = new Image();
      image.src = ImgD.src;
      if (image.width > 0 && image.height > 0) {
        if (image.width / image.height >= FitWidth / FitHeight) {
          if (image.width > FitWidth) {
            ImgD.width = FitWidth;
            ImgD.height = (image.height * FitWidth) / image.width;
          } else {
            ImgD.width = image.width;
            ImgD.height = image.height;
          }
        } else {
          if (image.height > FitHeight) {
            ImgD.height = FitHeight;
            ImgD.width = (image.width * FitHeight) / image.height;
          } else {
            ImgD.width = image.width;
            ImgD.height = image.height;
          }
        }
      }
    }

以上内容是本人给大家分享的如何解决谷歌浏览器下jquery无法获取图片的尺寸以及jQuery动态改变图片显示大小的方法,希望大家喜欢,更希望朋友请持续关注本站,谢谢。

Javascript 相关文章推荐
JavaScript 调试器简介
Feb 21 Javascript
javascript URL编码和解码使用说明
Apr 12 Javascript
JQuery操作单选按钮以及复选按钮示例
Sep 23 Javascript
利用JQuery和Servlet实现跨域提交请求示例分享
Feb 12 Javascript
jquery制作漂亮的弹出层提示消息特效
Dec 23 Javascript
JavaScript获取当前网页最后修改时间的方法
Apr 03 Javascript
javaScript实现可缩放的显示区效果代码
Oct 26 Javascript
vue动态组件实现选项卡切换效果
Mar 08 Javascript
详解vue的数据binding绑定原理
Apr 12 Javascript
实现微信小程序的wxml文件和wxss文件在webstrom的支持
Jun 12 Javascript
JavaScript判断浏览器运行环境的详细方法
Jun 30 Javascript
手写实现JS中的new
Nov 07 Javascript
js实现的动画导航菜单效果代码
Sep 10 #Javascript
js实现3D图片逐张轮播幻灯片特效代码分享
Sep 09 #Javascript
简单实现兼容各大浏览器的js复制内容到剪切板
Sep 09 #Javascript
jQuery实现MSN中文网滑动Tab菜单效果代码
Sep 09 #Javascript
js基于面向对象实现网页TAB选项卡菜单效果代码
Sep 09 #Javascript
JS实现自动变换的菜单效果代码
Sep 09 #Javascript
jQuery实现点击小图片淡入淡出显示大图片特效
Sep 09 #Javascript
You might like
谈一谈收音机的高放电路
2021/03/02 无线电
php线性表顺序存储实现代码(增删查改)
2012/02/16 PHP
php Ubb代码编辑器函数代码
2012/07/05 PHP
centos+php+coreseek+sphinx+mysql之一coreseek安装篇
2016/10/25 PHP
PHP编程实现微信企业向用户付款的方法示例
2017/07/26 PHP
PHPUnit测试私有属性和方法功能示例
2018/06/12 PHP
javascript jQuery $.post $.ajax用法
2008/07/09 Javascript
javascript之学会吝啬 精简代码
2010/04/25 Javascript
为radio类型的INPUT添加客户端脚本(附加实现JS来禁用onClick事件思路代码)
2010/11/11 Javascript
js css实现垂直方向自适应的三角提示菜单
2016/06/26 Javascript
一个简单不报错的summernote 图片上传案例
2016/07/11 Javascript
又一款js时钟!transform实现时钟效果
2016/08/15 Javascript
Js自动截取字符串长度,添加省略号(……)的实现方法
2017/03/06 Javascript
vue input 输入校验字母数字组合且长度小于30的实现代码
2018/05/16 Javascript
js核心基础之闭包的应用实例分析
2019/05/11 Javascript
redux.js详解及基本使用
2019/05/24 Javascript
JS实现密码框效果
2020/09/10 Javascript
UEditor 自定义图片视频尺寸校验功能的实现代码
2020/10/20 Javascript
Vue+penlayers实现多边形绘制及展示
2020/12/24 Vue.js
微信小程序视频弹幕发送功能的实现
2020/12/28 Javascript
js实现鼠标拖曳效果
2020/12/30 Javascript
[02:34]DOTA2英雄基础教程 幽鬼
2014/01/02 DOTA
[01:42]辉夜杯战队访谈宣传片—FANTUAN
2015/12/25 DOTA
利用Python爬取可用的代理IP
2016/08/18 Python
python机器学习库常用汇总
2017/11/15 Python
一份python入门应该看的学习资料
2018/04/11 Python
Python更改pip镜像源的方法示例
2020/12/01 Python
德国在线订购鲜花:Fleurop
2018/08/25 全球购物
乌克兰网上珠宝商店:GoldSoveren
2020/03/31 全球购物
什么是会话Bean
2015/05/14 面试题
Delphi工程师笔试题
2013/09/21 面试题
早餐连锁店计划书
2014/01/08 职场文书
2014年乡镇工作总结
2014/11/21 职场文书
八年级作文之感恩
2019/11/22 职场文书
Go遍历struct,map,slice的实现
2021/06/13 Golang
Python上下文管理器Content Manager
2021/06/26 Python