将类添加到父 IMG - LazySizes

约翰奇美拉

使用lazysizes,图像将一张一张地进行。IMG 元素中的默认类是lazyload,当加载图像时,lazyloading类在它旁边起作用,当该图像加载完成时,lazyloading类将替换为我现在想要使用lazyloaded类根据在 IMG 中变为活动的类添加/删除 div.parent 的类。

`<div class="image-wrap">
  <a href="#">
      <img class="lazyload" data-src="">
   </a>
</div>`

<script src="http://afarkas.github.io/lazysizes/lazysizes.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="container">
<div class="image-wrap">
  <a href="#">
      <img class="lazyload" data-src="http://lorempixel.com/150/150">
   </a>
</div>
<div class="image-wrap">
  <a href="#">
      <img class="lazyload" data-src="http://lorempixel.com/150/150/sports/">
   </a>
</div>
<div class="image-wrap">
  <a href="#">
      <img class="lazyload" data-src="http://lorempixel.com/150/150/nature/">
   </a>
</div>
<div class="image-wrap">
  <a href="#">
      <img class="lazyload" data-src="http://lorempixel.com/150/150/cats/">
   </a>
</div>
<div class="image-wrap">
  <a href="#">
      <img class="lazyload" data-src="http://lorempixel.com/150/150/business/">
   </a>
</div>
<div class="image-wrap">
  <a href="#">
      <img class="lazyload" data-src="http://lorempixel.com/150/150/city/">
   </a>
</div>
<div class="image-wrap">
  <a href="#">
      <img class="lazyload" data-src="http://lorempixel.com/150/150/people/">
   </a>
</div>

</div>

约翰奇美拉

由@dvd、@aFarkas 解决:https ://pt.stackoverflow.com/a/280306/95735

$(document).ready(function(){
   $(".image-wrap").addClass("classe1");

   const els = $(".image-wrap").find("img");
   
   els.each(function(){
      $(this).on("load error", function(){
         $(this)
         .closest(".image-wrap")
         .addClass("classe2")
         .removeClass("classe1");
      });
   });
});
/*linhas só para exemplo*/

.classe1{
   background: red;
}

.classe2{
   background: blue;
}

.image-wrap{
   padding: 15px;
   margin: 5px;
   position:relative;
}
.classe1:before {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 40px;
    height: 40px;
    margin: -20px 0 0 -20px;
    content: "";
    background: #f7f7f7 url(//afarkas.github.io/lazysizes/assets/imgs/loader.gif) no-repeat center;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://afarkas.github.io/lazysizes/lazysizes.min.js"></script>
<div class="container">
<div class="image-wrap">
  <a href="#">
      <img class="lazyload" data-src="http://lorempixel.com/150/150">
   </a>
</div>
<div class="image-wrap">
  <a href="#">
      <img class="lazyload" data-src="http://lorempixel.com/150/150/sports/">
   </a>
</div>
<div class="image-wrap">
  <a href="#">
      <img class="lazyload" data-src="http://lorempixel.com/150/150/nature/">
   </a>
</div>
<div class="image-wrap">
  <a href="#">
      <img class="lazyload" data-src="http://lorempixel.com/150/150/cats/">
   </a>
</div>
<div class="image-wrap">
  <a href="#">
      <img class="lazyload" data-src="http://lorempixel.com/150/150/business/">
   </a>
</div>
<div class="image-wrap">
  <a href="#">
      <img class="lazyload" data-src="http://lorempixel.com/150/150/city/">
   </a>
</div>
<div class="image-wrap">
  <a href="#">
      <img class="lazyload" data-src="http://lorempixel.com/150/150/people/">
   </a>
</div>

</div>

解决方案#2

https://github.com/aFarkas/lazysizes/issues/474

$(document).on('lazybeforeunveil lazyloaded', function(e){

  if(e.type == 'lazyloaded'){
    var addClass = 'classe2',
    removeClass = 'classe1';
  }else{
    var addClass = 'classe1',
    removeClass = 'classe2';
  }
  
  $(e.target)
  .closest('.image-wrap')
  .addClass(addClass)
  .removeClass(removeClass);
});
/*linhas só para exemplo*/

.classe1{
   background: red;
}

.classe2{
   background: blue;
}

.image-wrap{
   padding: 15px;
   margin: 5px;
   position:relative;
}
.classe1:before {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 40px;
    height: 40px;
    margin: -20px 0 0 -20px;
    content: "";
    background: #f7f7f7 url(//afarkas.github.io/lazysizes/assets/imgs/loader.gif) no-repeat center;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://afarkas.github.io/lazysizes/lazysizes.min.js"></script>
<div class="container">
<div class="image-wrap">
  <a href="#">
      <img class="lazyload" data-src="http://lorempixel.com/150/150">
   </a>
</div>
<div class="image-wrap">
  <a href="#">
      <img class="lazyload" data-src="http://lorempixel.com/150/150/sports/">
   </a>
</div>
<div class="image-wrap">
  <a href="#">
      <img class="lazyload" data-src="http://lorempixel.com/150/150/nature/">
   </a>
</div>
<div class="image-wrap">
  <a href="#">
      <img class="lazyload" data-src="http://lorempixel.com/150/150/cats/">
   </a>
</div>
<div class="image-wrap">
  <a href="#">
      <img class="lazyload" data-src="http://lorempixel.com/150/150/business/">
   </a>
</div>
<div class="image-wrap">
  <a href="#">
      <img class="lazyload" data-src="http://lorempixel.com/150/150/city/">
   </a>
</div>
<div class="image-wrap">
  <a href="#">
      <img class="lazyload" data-src="http://lorempixel.com/150/150/people/">
   </a>
</div>

</div>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用特定的类名或特定的源将类添加到<img>的父类中

来自分类Dev

将类添加到嵌套的 img

来自分类Dev

PageDown:使用JavaScript将CSS类添加到每个<img>标签

来自分类Dev

将引导img响应类添加到Wagtail WYSIWYG编辑器

来自分类Dev

Bootstrap:将img响应类添加到缩略图

来自分类Dev

活动类添加到li而不是img

来自分类Dev

将触摸事件添加到html img控件

来自分类Dev

将onclick事件添加到img id

来自分类Dev

正确将img src从JavaScript添加到html

来自分类Dev

悬停时将渐变背景添加到img标签

来自分类Dev

如何将img动态添加到div

来自分类Dev

将src img添加到mysql表

来自分类Dev

将 img 添加到 div 会更改背景颜色

来自分类Dev

将类添加到父元素

来自分类Dev

删除添加到 img 标签的参数

来自分类Dev

如何将属性添加到img标签以在ajax调用中使用

来自分类Dev

尝试将缺少的img属性添加到自定义javascript中

来自分类Dev

使用jQuery将属性动态添加到img元素后,Bootstrap轮播无法正常工作

来自分类Dev

如何将Windows(NTFS).img文件写入分区并将其添加到grub?

来自分类Dev

您如何使用CSS将超链接添加到BG img?

来自分类Dev

如何将属性添加到img标签以在ajax调用中使用

来自分类Dev

如何将显示无属性添加到Img标签

来自分类Dev

如何将python元素直接添加到<img> HTML元素?

来自分类Dev

将宽度属性添加到字符串中的 img

来自分类Dev

使用 data-src (lazysizes) 将背景图片从 css 移动到 html 并正确使用样式

来自分类Dev

优化代码以将CSS类添加到父div

来自分类Dev

使用特定输入将类添加到父div

来自分类Dev

根据URL将活动类添加到父元素

来自分类Dev

jQuery将CSS类添加到父<ul>元素

Related 相关文章

热门标签

归档