博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Chrome和Safari浏览器jquery width(), height()获取不到高度的问题
阅读量:5081 次
发布时间:2019-06-13

本文共 723 字,大约阅读时间需要 2 分钟。

遍历一组图片,遍历时需要获取其宽度,效果出来后,IE和Firefox都没有问题,唯独Chrome和Safari会出现获取不到图片宽度的情况。以往基本上是IE不兼容,这下出现Chrome和Safari不兼容了,倒觉得稀奇了,故写出来分享下。

注:代码修改之前,直接用的$(ele).width()来取图片的宽度。涉及代码:

  1. $(function(){
  2. ... //此处省略N行
  3. var w = $(this).width();
  4. ... //此处省略N行
  5. });

分析后得知,Chrome和Safari肯定是图片还没有完全载入进来,就去获取图片的宽度了,得其宽度为0,肯定就出错了

解决办法:

一、不要使用”$(document.ready(function(){…})”或其简写形式”$(function(){…}),使用$(window).load(function(){}); 代码改写如下:

  1. $(window).load(function(){
  2. ... //此处省略N行
  3. var w = $(this).width();
  4. ... //此处省略N行
  5. });
  1.  

二、使用Image对象和其onload方法

  1. $(function(){
  2. ... //此处省略N行
  3. var that = $(this);
  4. var img = new Image();
  5. img.src = $(this).attr("src");
  6. img.onload = function(){
  7. var w = img.width;
  8. }
  9. ... //此处省略N行
  10. });

转载于:https://www.cnblogs.com/FineDay/articles/3483637.html

你可能感兴趣的文章
nodejs fs路径
查看>>
动态规划算法之最大子段和
查看>>
linux c:关联变量的双for循环
查看>>
深入浅出理解zend framework(三)
查看>>
python语句----->if语句,while语句,for循环
查看>>
javascript之数组操作
查看>>
LinkedList源码分析
查看>>
TF-IDF原理
查看>>
用JS制作博客页面背景随滚动渐变的效果
查看>>
JavaScript的迭代函数与迭代函数的实现
查看>>
一步步教你学会browserify
查看>>
Jmeter入门实例
查看>>
亲近用户—回归本质
查看>>
中文脏话识别的解决方案
查看>>
CSS之不常用但重要的样式总结
查看>>
Python编译错误总结
查看>>
URL编码与解码
查看>>
日常开发时遇到的一些坑(三)
查看>>
Eclipse 安装SVN插件
查看>>
深度学习
查看>>