作者:LAMP小白 点击:1695 发布日期:2012-11-23 23:42:00 返回列表
JS需要一个功能,当图片加载时,获得他的宽高,动态的去改变CSS样式
之前这样写,发现有时会失效,图片加载了但是CSS的样式仍然是0
bgUrl = bgUrl.replace('url(', '').replace(')', '').replace(/"/g, "").replace(/'/g, ""); bgObj.src = bgUrl; $(bgObj).load(function(){ alert(bgObj.width); $('#mioTdCordBg').css({width:bgObj.width, height:bgObj.height}); BG_INIT_WIDTH = parseInt(bgObj.width); BG_INIT_HEIGHT = parseInt(bgObj.height); $('#miobgwidth').val(bgObj.width); $('#miobgheight').val(bgObj.height); changeTargetSizeInfo('bg', BG_INIT_WIDTH, BG_INIT_HEIGHT); })
困惑了一会,最后发现其实是因为有缓存了,加载速度非常快,导致load事件还没解析完成,浏览器就执行到下面了
改写为:
$(bgObj).load(function(){ alert(bgObj.width); $('#mioTdCordBg').css({width:bgObj.width, height:bgObj.height}); BG_INIT_WIDTH = parseInt(bgObj.width); BG_INIT_HEIGHT = parseInt(bgObj.height); $('#miobgwidth').val(bgObj.width); $('#miobgheight').val(bgObj.height); changeTargetSizeInfo('bg', BG_INIT_WIDTH, BG_INIT_HEIGHT); }) bgObj.src = bgUrl;
问题解决
上一篇:解决SAE下不能写文件的问题 下一篇:快递查询API