weixin_43863799 2019-11-07 14:19 采纳率: 0%
浏览 242

请教火狐下的图片预加载

for(var x=start; x<end; x++){  // 循环开始
        var loadNums = 0
        if(newImgArr[x]){
          imgLoad[n] = new Image()
          imgLoad[n].onload = function(){  // 判断是否加载图片完成
            loadNums++
            if(loadNums == nums){  // 本次循环的图片全部完成
              console.log('完成一组')
              start = start + nums  // 改变索引
              end = start + nums
              // setTimeout(loadImgFun, 3000, start, end, nums)  // 计时器,测试使用 看的更直观一些
              loadImgFun(start,end,nums)  // 开始下次循环
            }
          }
          imgLoad[n].onerror = function (){
            alert('img loading error!' + newImgArr[x]);
          }
          imgLoad[n].src = picUrl + newImgArr[x]
          imgList.appendChild(imgLoad[n])
          n++
        }
      }
var div = document.createElement('div')
              div.className = 'pic'
              div.setAttribute("id","pic" + z)
              div.appendChild(imgLoadArr[z-1])
              self.newBox.appendChild(div)

最近的项目需要做个图片的预加载,大概两千多张图吧,想实现的效果是,鼠标滚动,图片可以快速的切换并且不顿挫,在chrome中是正常的,但火狐中,始终在切换的时候有切换顿挫的问题,在控制台看图片已经下载了,尝试把图片插入到dom中,用visibility: hidden隐藏,没有解决问题
但鼠标滑动过的图片,在回来从新切换,就是ok的,这个和火狐的渲染机制有关系吗?哪位大神可以指点下?

  • 写回答

1条回答 默认 最新

  • Kuukiliselessness 2019-11-07 16:27
    关注

    当 Image 实例对象 赋值或修改 src属性的时候 (也就是 这里 imgLoad[n].src = picUrl + newImgArr[x])浏览器已经开始加载图片。

    更多的可能是 css 的问题吧?
    比如动态修改dom的时候前后布局变化之类的。

    这个只能你具体分析了。

    建议是 可以考虑先把盒子模型撑开,确保有图片和没图片的时候表现一致。

    评论

报告相同问题?

悬赏问题

  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog