javascript - 在所有图像加载无效后执行js

标签 javascript jquery html image load

(不重复,因为找不到准确/简单的解决方案)
我试图在所有图像完全加载后执行 JS。我的目标是,当所有图像完全加载完成后,removeClass my-loader 和 addClass visiblemain-slider div。

HTML:

<div class='main-slider my-loader'>
<img src="https://unsplash.it/200/300/">
<img src="https://unsplash.it/200/300/">
<img src="https://unsplash.it/200/300/">
</div>

当所有图片加载完成后执行下面的js

$(".main-slider").removeClass("my-loader").addClass("visible"); 


试过这个 js :
但在我的网站上无法正常工作,问题是当我清除浏览器缓存时,它可以工作/执行!当我重新加载页面时,下次它不起作用/执行!
它只有在我清除浏览器缓存时才有效。

var img = $('.main-slider img')
var count = 0
img.each(function(){
  $(this).load(function(){
    count = count + 1
    if(count === img.length) {
      $('.main-slider').removeClass('my-loader').addClass('visible')
    }
  });
});

有什么简单的解决办法吗?提前致谢。

最佳答案

jQuery 提供了一种为窗口加载事件注册回调的方法,该事件将在加载整个页面(包括图像和 iframe)时触发。 引用:https://learn.jquery.com/using-jquery-core/document-ready/

您的代码应该类似于:

$( window ).load(function () {
  var img = $('.main-slider img')
  var count = 0
  img.each(function(){
    $(this).load(function(){
      count = count + 1
      if(count === img.length) {
        $('.main-slider').removeClass('my-loader').addClass('visible')
      }
    });
  });
});

关于javascript - 在所有图像加载无效后执行js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39807511/

相关文章:

javascript - 单击其他任何地方时弹出 div hide() - jQuery

php - 如何在使用 echo 时从 HTML 转义?

html - CSS div 标签类名 (CakePHP)

javascript - 在表单中使用 jQuery 使用箭头键跳转到下一个输入字段

javascript - Highcharts:如何在window.location.href中指定文件名将图像导出到本地磁盘

javascript - 根据 Woocommerce 3 中的送货方式显示或隐藏结帐字段

javascript - .click 未在按钮上注册

Javascript删除html表格行

javascript - 从 div 获取文本

javascript - 放入内部时更改可放置图像