JQ获取动态加载的图片大小的正确方法分享
有一些很容易出错的获取动态加载的图片的尺寸的方法, 之所以出错, 主要原因是:
你在代码在图片从网页上下载完毕之前就调用了, 这种情况在本机开发时不太容易发现.
jQuery load()事件处理的BUG, 当图片是从浏览器缓存取得时, 获取的是错误的尺寸.
错误的代码是:
(错误)在添加了HTML之后立即调用代码获取尺寸
var html = '';
$('#my_div').html(html);
var width = $('#my_div img').width(); // may return 0
(错误)用jQuery的load()事件处理
var html = '';
var img = $(html);
html.load(function(){
// return 0 if image is loaded from browser cache
var width = img.width();
});
$('#my_div').html(img);
下面这种才是真正正确的方法, 使用JavaScript的Image类:
正确的方法
代码如下:
var html = '';
$('#my_div').html(html);
var ni = new Image();
ni.onload = function(){
var width = ni.width;
}
ni.src = img.attr(URL);
相关推荐
-
JQ获取动态加载的图片大小的正确方法分享
有一些很容易出错的获取动态加载的图片的尺寸的方法, 之所以出错, 主要原因是:你在代码在图片从网页上下载完毕之前就调用了, 这种情况在本机开发时不太容易发现.jQuery load()事件处理的BUG, 当图片是从浏览器缓存取得时, 获取的是错误的尺寸.错误的代码是:(错误)在添加了HTML之后立即调用代码获取尺寸 复制代码 代码如下: var html = ''; $('#my_div').html(html); var width = $('#my_div img').width(); //
-
解决Vue动态加载本地图片问题
最近遇到了个问题,用v-bind动态绑定img的src,图片加载不出来.控制台显示src是有获取到图片地址的,可是就是加载不出来. 最后才发现原因原来是浏览器中直接显示'./img/img1.png',也就是没有经过编译的步骤,直接将获取到的数据当作字符串显示. 解决方法: 1.在当前界面全局import图片地址 //使用import引入 import img1 from './img/img1.png' import img2 from './img/img2.png' export defa
-
vue动态加载本地图片的处理方法
发现问题 今天遇到一个在vue文件中引入本地图片的问题,于是有了这篇文章. 通常,我们的一个img标签在html中是这么写的: <img src="../images/demo.png"> 这种写法只能引用相对路径下的图片.不能使用绝对路径.使用绝对路径的话,这类资源将会直接被拷贝,而不会经过 webpack 的处理. 如果src是变量的话,我们一般会在data中定一个变量src进行动态绑定. <img :src="src"> //data中
-
Unity 从Resources中动态加载Sprite图片的操作
我就废话不多说了,大家还是直接看代码吧~ public Sprite LoadSourceSprite(string relativePath) { //Debug.Log("relativePath=" + relativePath); //把资源加载到内存中 Object Preb = Resources.Load(relativePath, typeof(Sprite)); Sprite tmpsprite = null; try { tmpsprite = Instantiat
-
动态加载JavaScript文件的两种方法
这篇文章主要为大家详细介绍了动态加载JavaScript文件的两种方法,感兴趣的小伙伴们可以参考一下 第一种便是利用ajax方式,把script文件代码从背景加载到前台,而后对加载到的内容经过eval()实施代码.第二种是,动静创建一个script标签,配置其src属性,经过把script标签插入到页面head来加载js,相当于正在head中写了一个<script src="..."></script>,只可是这个script标签是用js动静创建的 比喻说是我们
-
AJAX 动态加载后台数据 绑定select的方法
直接上代码 是可以用的,后台代码我就不贴了,我相信后台代码大家都会,直接返回json数据,我是前端比较差的,所以喜欢把每次不会的全部记起来 html代码 <select id="select" style="width : 80px;height : 30px;"> //下拉框数据动态加载 </select> js代码 $.ajax({ url: "", //后台webservice里的方法名称 contentType:
-
Android实现listview动态加载数据分页的两种方法
在android开发中,经常需要使用数据分页,比如要实现一个新闻列表的显示,或者博文列表的显示,不可能第一次加载就展示出全部,这就需要使用分页的方法来加载数据,在android中Handler经常用来在耗时的工作中,它接收子线程发送的数据,并使用数据配合更新UI,AsyncTask是在一个线程中执行耗时操作然后把结果传给UI线程,不需要你亲自去管理线程和句柄. 一.使用Handler+线程方法 1.基础知识 Handler在android系统中,主要负责发送和接收消息,它的用途主要有以下两种:
-
Element中的Cascader(级联列表)动态加载省\市\区数据的方法
element中的cascader其实是有动态加载次级选项的方法. 方法的原理是利用址(引用)传递,动态修改:options. var c={name: 'bob'} var d=c d.name = 'tom' console.log(c) // {name: "tom"} http://element-cn.eleme.io/#/zh-CN/component/cascader#dong-tai-jia-zai-ci-ji-xuan-xiang 其中找到究竟需要在那层添加数据就变成
-
ASP.NET动态加载用户控件的实现方法
第一步:例如用户控件放在MyList.Ascx,然后其Control指令是: 复制代码 代码如下: <%@ Control Language="C#" AutoEventWireup="true" CodeFile="ViewComment.ascx.cs" Inherits="Control_ViewComment"%> 这时候已经有了Inherits,自带了ClassName就是其名称,如果没有,则必须创建Cl
-
动态加载script文件的两种方法
动态加载script到页面大约有俩方法 第一种就是利用ajax方式,把script文件代码从后台加载到前台,然后对加载到的内容通过eval()执行代码.第二种是,动态创建一个script标签,设置其src属性,通过把script标签插入到页面head来加载js,相当于在head中写了一个<script src="..."></script>,只不过这个script标签是用js动态创建的 比如说是我们要动态地加载一个callbakc.js,我们就需要这样一个scr
随机推荐
- Web移动端Fixed布局的解决方案
- ASP.NET中Global和URLReWrite用法
- JavaScript数据结构之二叉查找树的定义与表示方法
- iOS时钟开发案例分享
- IOS实现图片轮播无限循环效果
- ASP.NET对txt文件相关操作(读取、写入、保存)
- asp.net通过js实现Cookie创建以及清除Cookie数组的代码
- ASP.NET中使用IFRAME建立类Modal窗口
- php 缓存函数代码
- Struts2中ognl遍历数组,list和map方法详解
- Redis 数据类型的详解
- 移动手机APP手指滑动切换图片特效附源码下载
- jQuery绑定自定义事件的魔法升级版
- JQuery验证jsp页面属性是否为空(实例代码)
- JS 插件dropload下拉刷新、上拉加载使用小结
- js添加绑定事件的方法
- 再谈注册表
- Java中使用BigDecimal进行浮点数运算
- javascript在当前窗口关闭前检测窗口是否关闭
- WEBSITEZ为您提供100M-500M的全能型免费空间