首页>建站相关>利用jquery lazyload插件回调函数修改类名

利用jquery lazyload插件回调函数修改类名

准备在主题中引用jquery,所以lazyload插件也准备用jquery的插件,使用上同lazysizes略有不同,默认并不能在成功加载图片之后修改图片的类名。但是lazyload贴心的提供了回调函数,允许我们自由的修改。

引用插件

字节跳动的静态资源库相对较全,也一直运行的比较稳定,准备在主题里引用字节的静态资源,引用外部资源可以减少自身服务器的负载,自己的服务器只负责输出内容就好。

<script src="https://lf26-cdn-tos.bytecdntp.com/cdn/expire-1-M/jquery/3.6.0/jquery.min.js" type="application/javascript"></script>
<script src="https://lf6-cdn-tos.bytecdntp.com/cdn/expire-1-M/jquery_lazyload/1.9.7/jquery.lazyload.min.js" type="application/javascript"></script>

插件的源代码

在回调中,作者除了提供图片对象自身外,还提供了剩余未展示的图片数量(elements_left),以及settings;

if (settings.load) {
    var elements_left = elements.length;
    settings.load.call(self, elements_left, settings);
}

实现回调

修改类名的示例:

<script type="text/javascript"> 
$(function() { 
$("img").lazyload({
effect : "fadeIn",
load : function(){$(this).attr('class','lazyloaded');}
}); 
}); 
</script> 

这样成功读取后的图片的类名会从“lazyload”变为“lazyloaded”,如果想要获取剩余图片的数量,可以这样写:

<script type="text/javascript"> 
$(function() { 
$("img").lazyload({
effect : "fadeIn",
load : function(a){console.log("剩余图片数量为"+a+"张!");}
}); 
}); 
</script> 

可以看到在console窗口中正确展示了剩余的图片数量;

jquery_lazyload_callback_change_class

如果想要获取到settings部分的内容,则需要在函数中增加一个参数。

<script type="text/javascript"> 
$(function() { 
$("img").lazyload({
effect : "fadeIn",
load : function(a,b){console.log(b);}
}); 
}); 
</script> 

一个完整的实例

实例并不包含图片,请在文件同文件夹内填充同名图片,或自行修改图片的路径:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script src="https://lf26-cdn-tos.bytecdntp.com/cdn/expire-1-M/jquery/3.6.0/jquery.min.js" type="application/javascript"></script>
<script src="https://lf6-cdn-tos.bytecdntp.com/cdn/expire-1-M/jquery_lazyload/1.9.7/jquery.lazyload.min.js" type="application/javascript"></script>
<style>
img{
    width:300px;
}
</style>
<title>无标题文档</title>
</head>

<body>
<img class="lazyload" data-original="IMG_2083.JPG">
<img class="lazyload" data-original="IMG_2084.JPG">
<img class="lazyload" data-original="IMG_2085.JPG">
<img class="lazyload" data-original="IMG_2086.JPG">
<img class="lazyload" data-original="IMG_2087.JPG">
<img class="lazyload" data-original="IMG_2088.JPG">
<img class="lazyload" data-original="IMG_2089.JPG">
<img class="lazyload" data-original="IMG_2090.JPG">
<img class="lazyload" data-original="IMG_2091.JPG">
<img class="lazyload" data-original="IMG_2092.JPG">
<img class="lazyload" data-original="IMG_2093.JPG">
<img class="lazyload" data-original="IMG_2094.JPG">
<img class="lazyload" data-original="IMG_2095.JPG">
<img class="lazyload" data-original="IMG_2096.JPG">


</body>
<script type="text/javascript"> 
$(function() { 
$("img").lazyload({
effect : "fadeIn",
load : function(a,b){console.log(a);}
}); 
}); 
</script> 
</html>

标签: jquery

移动端可扫我直达哦~

推荐阅读

jquery 2024-03-23

利用Jquery实现点击元素后复制被点击元素的标签

在博客上放了一个“Fontawesome4.7.0图标一览”的页面,一直觉得功能太过于单一。自己使用当中,遇到合适的图标,往往还需要去获取它的html标签属性。所以就想给这个页面增加一个点击后复制被点击元素标签的功能。获取标签的相关指...

建站相关 jquery

jquery 2023-12-21

为当前页面生成一个二维码以便于移动端访问

想要在手机上上访问pc端的一个页面,现在很常见的做法是提供一个二维码,让用户通过手机扫码软件识别后用浏览器打开,这样就实现了页面地址数据的传输。某天做完一个页面后,想在手机上看看效果,一边手动输入页面地址,一边就萌生了为站点添加一个二...

建站相关 jquery

jquery 2023-06-09

Jquery幻灯插件Slidesjs图片宽高异常与引用文件顺序

遇到一个困扰多日的问题,在页面中生成了一个幻灯片组件,正常载入的时候是挺正常的,但是偶尔多刷新几次,图片的宽高会出现异常,离谱的是幻灯容器的宽度正常,图片大幅度溢出,而按钮位置无误。以上的bug描述对解决问题毫无帮助,幻灯容器的宽高是...

建站相关 jquery

jquery 2023-05-10

Jquery实现wordpress菜单的鼠标跟随效果

看别人家的博客,菜单栏下有一条装饰线,会根据鼠标悬停的位置来回滑动,且根据滑动距离长短,有明显的速度变化。一直心向往之,正好在学习wordpress的wp_nav_menu函数,顺便尝试一下实现这个效果。看过张戈博客主题的元素,似乎是...

建站相关 jquery

jquery 2023-05-05

Jquery实现wordpress彩色标签云

想在wordpress中实现一组彩色的标签,网上相关的实现教程很多,这里就不赘述了。之所以考虑用Jquery来实现,是基于服务器性能的考虑。因为博主的服务器是2h1g的低配版本,这个配置相对于访问用户的主机配置,无论是移动端还是电脑端...

建站相关 jquery

jquery 2023-05-04

Jquery添加与删除元素的class名

尝试了一下在新的主题中使用jquery,绑定点击动作来添加与删除元素的类名,使用下来感觉确实非常方便。虽然随着各种前段框架的流行,jquery的影响力逐渐减退,但对于博主这种菜鸟来说,还是觉得惊为天人。用jquery添加classna...

建站相关 jquery

jquery 2022-12-30

Jquery幻灯插件nivo slider使用详解

学习slidesjs幻灯插件的时候翻到的这个,比起slidesjs,nivo slider提供了更多的动画效果,更为丰富的自定义选项。当然,对于一个站点来说,丰富的内容才是关键,过度追求华丽的效果,特别对于带宽较小的服务器来说,无异于...

建站相关 jquery

jquery 2022-12-25

网页引用jQuery UI的方式

jQuery UI简介jQuery UI包含了许多维持状态的小部件(Widget),因此,它与典型的 jQuery 插件使用模式略有不同。所有的 jQuery UI 小部件(Widget)使用相同的模式,所以,只要您学会使用其中一个,...

建站相关 jquery

jquery 2022-12-22

Jquery幻灯插件Slidesjs使用详解

曾经粗浅尝试过swiper,依赖复制粘贴实现过简易的幻灯片效果。因为服务器配置不高,加入幻灯效果后页面读取时间直线上升,所以以服务器配置过低为理由劝退了自己,实际上还是对swiper的一大堆设置产生了畏难心理。接近年底,抽时间学习一下...

建站相关 jquery