首页>建站相关>利用jquery来实现站点图片lazyload功能的关闭与开启

利用jquery来实现站点图片lazyload功能的关闭与开启

因为在wordpress的后台设置了一个lazyload项,准备实现全站的图片懒加载的开关,因为业务不熟练,写到哪个模块,就重新构建哪个模块的懒加载开关逻辑,这天刚好写到文章缩略图,获取到的缩略图一般是img标签,在js里面直接可以通过属性比如src啊,href啊,data-xxx啊调用到值,但php里则需要正则匹配。虽然正则的作业网上到处都有,但是懒脑筋又开始蠢蠢欲动,既然js这么方便,利用js来实现可行吗?

判断开启与关闭的逻辑应该不难,后台根据lazyload参数来判断是否加载包含lazyload的业务代码。至于图片的懒加载:

初始的时候是类似这样的:

<img src="th1.jpg">

支持懒加载的时候应该是这样一个格式:

<img data-original="th2.jpg" class="lazy">

懒加载成功之后的图片代码如下:

<img data-original="th1.jpg" class="lazy" src="th1.jpg">

使用jquery实现图片的懒加载,只需要在懒加载语句生效之前,将图片的src地址转移给“data-original”,在添加一个“lazy”类名,就可以了。

用jquery实现这个功能尤为简单,代码如下,先全选所有符合条件的图片,交换属性后,删除src属性,最后添加一个“lazy”类名:

  $('img').each(function (){
    $(this).attr('data-original',$(this).attr('src')).removeAttr('src').addClass('lazy');
  });

因为仅通过一个本地实例验证了一下效果,实装的时候会出什么问题尚未可知。附完整实例代码,如需测试,请自备图片哦。

<!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=gb2312" />
<script src="https://lf9-cdn-tos.bytecdntp.com/cdn/expire-1-M/jquery/3.6.0/jquery.min.js" type="application/javascript"></script>
<script src="https://lf9-cdn-tos.bytecdntp.com/cdn/expire-1-M/jquery.lazyload/1.9.1/jquery.lazyload.min.js" type="application/javascript"></script>
<title>无标题文档</title>
<style>
img{
    width:400px;
}
</style>
</head>

<body>
<img src="th1.jpg">
<img src="th2.jpg">
<img src="th3.jpg">
<img src="th4.jpg">
<img src="th5.jpg">
<img src="th6.jpg">
<img src="th7.jpg">
<img src="th8.jpg">
<img src="th9.jpg">
<img src="th10.jpg">
<img src="th11.jpg">
<img src="th12.jpg">
<img src="th13.jpg">
<img src="th14.jpg">
<img src="th15.jpg">
</body>
<script>
  $('img').each(function (){
$(this).attr('data-original',$(this).attr('src')).removeAttr('src').addClass('lazy');
});
  var c=0;
  $(function() {
      $("img.lazy").lazyload({
      effect: "fadeIn",
      });
  });
</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 2023-04-15

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

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

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