为了账号安全,请及时绑定邮箱和手机立即绑定

javascript Image的onload 方法的使用

javascript Image的onload 方法的使用

慕妹3146593 2018-09-10 18:10:45
var img = new Image();img.onload =function () {    $('.bg').css('background-image', 'url("'+img.src+'")');}img.src="images/bg.jpg";添加背景图片 这样的写法是否正确? 为什么onload方法要在src之前调用?
查看完整描述

1 回答

?
犯罪嫌疑人X

TA贡献2080条经验 获得超4个赞

  • 因为当image的src发生改变,浏览器就会跑去加载这个src里的资源。这个操作是异步的,就是说,js不会傻傻地在原地等待图片的加载,而是继续读代码,直到图片加载完成,触发onload事件,js才会回来执行onload里面的内容。

  • 那么问题来了,假如你家的网速好到爆,比光速还快,或者图片超级小,反正就是,当图片加载的速度快于js解释器阅读代码的速度,然后你的onload是写在.src后面,浏览器还没读onload里面的全部内容就触发了onload事件。。。这就很尴尬了,浏览器根本不知道接下来要做什么,索性就什么都不做。。。所以onload要先写在.src前面,就是先告诉浏览器:待会要是onload,你就执行这些这些,知道了吗?好了,我要放src了,记得onload的时候执行函数啊!


查看完整回答
1 反对 回复 2018-10-09
  • 1 回答
  • 0 关注
  • 935 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信