首页>建站相关>利用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 2025-03-25

关于jquery获取页面宽度的width()函数

想在页面变动的时候动态添加一些元素,以动态填充页面调整后容器尾部出现的空缺。但是利用jquery完成逻辑之后,发现与实际页面宽度有点儿对不上,明明要求在宽度小于992px时才执行的元素,宽度为1006px的时候已经开始执行了,这就导致...

建站相关 jquery

jquery 2025-03-12

jQCloud 一个基于jquery的词云生成插件

jQCloud 是一个基于 jQuery 的插件,用于生成美观且纯 HTML + CSS 的词云和标签云。使用这个插件需要引入两个文件,分别jQCloud 的 js 依赖与 css 依赖,但是由于其默认的css非常的简单,且预设的颜色...

建站相关 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