扫码关注官方订阅号
我想实现多个图片预加载,但是觉得这个方法不对劲,求大神指点以及简化或是更好的办法。
欢迎选择我的课程,让我们一起见证您的进步~~
你这么写不会报错吗,感觉逻辑已经错了。
img.onload=()();
不就等于
img.onload=img
下面这种思路你可以试试,我简写了一部分,因为你的代码是截图的
function textImg(srcs, callback) { var imgs = []; srcs.forEach(function (v, i) { var img = new Image(); img.src = v; img.onload = function () { imgs.push(this); if (imgs.length == srcs.length) { callback(imgs); } } }) }
onload后面应该是写回调函数,不是回调函数执行结果。
用promise吧。要么就写一个监控用的setInterval,每张图片加载成功就把image对象写到一个hash表比方说
{ img_src: { 'img_obj': img_obj, 'complete': 0 } }
这样的格式, 并把complete置为1,然后用setInterval去监控当整个hash表每个对象的complete都为1时表示成功。
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
你这么写不会报错吗,感觉逻辑已经错了。
不就等于
下面这种思路你可以试试,我简写了一部分,因为你的代码是截图的
onload后面应该是写回调函数,不是回调函数执行结果。
用promise吧。
要么就写一个监控用的setInterval,每张图片加载成功就把image对象写到一个hash表比方说
这样的格式, 并把complete置为1,然后用setInterval去监控当整个hash表每个对象的complete都为1时表示成功。