纯js懒加载,java后台举例

?





1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

function
getElementsByClassName(str,root,tag){

       if(root){

           root = typeof
root == "string"
? document.getElementById(root) : root;

       } else
{

           root = document.body;

       }

       tag = tag || "*";

   

       var
els = root.getElementsByTagName(tag),arr = [];

       for(var
i=0,n=els.length;i<n;i++){

           //k是一个数组

           for(var
j=0,k=els[i].className.split(" "),l=k.length;j<l;j++){

               if(k[j] == str){

                   arr.push(els[i]);

                   break;

               }

           }

       }

       return
arr;

   }     

       //取元素的页面绝对 X位置

      function
getLeft(El){

           var
left = 0;

           do{

               left += El.offsetLeft;

           }while((El = El.offsetParent).nodeName != ‘BODY‘);

           return
left;

       };

       //取元素的页面绝对 Y位置

       function
getTop(obj){

           var
top = 0;

           while(obj){

              top += obj.offsetTop;

              obj = obj.offsetParent;

           }

           return
top;

       };

    function
lazyLoad(){

       var
imgs =getElementsByClassName("lazyLoad",null,"img"),

               top =  document.body.scrollTop || document.documentElement.scrollTop,

               left =  document.body.scrollLeft || document.documentElement.scrollLeft,

               screenHeight = window.screen.height,

               screenWidth = window.screen.width;

           for(var
i=0,len=imgs.length; i < len; i++){

               var
_top = getTop(imgs[i]);  

               var
_left = getLeft(imgs[i]);                    

               //判断图片是否在显示区域内            

               if(_top <= screenHeight+top && _left <= screenWidth+left){                              

                   var
_src = imgs[i].getAttribute(‘_src‘);

                   //如果图片已经显示,则取消赋值

                   if(/imgs\/load.jpg$/.test(imgs[i].getAttribute(‘src‘))){                                                   

                       imgs[i].src = _src;

                   }

               }

           }

    }

    window.onload = window.onscroll = window.onresize= lazyLoad;

?





1

2

3

4

5

6

<%

       for(int i = 0; i < 21; i++){

  %>

   <img _src="imgs/img<%=i%>.jpg"
class="lazyLoad"
id="<%=i%>"
data-i = <%=i%> src="imgs/load.jpg"
style="width:590px;height:500px;">

  <%

  }

  关键点是1,把图片的src保存在自定义属性中,src统一用同一图片,浏览器会自动缓存。2,当图片出现在视口中则把src替换为真实的路径。这个时候会产生http请求,图片就加载了出来

纯js懒加载,java后台举例,布布扣,bubuko.com

时间: 2024-08-07 08:48:27

纯js懒加载,java后台举例的相关文章

JS懒加载

4.如何使用js懒加载图片 a.懒加载图片是基于jquery.js的,所以: <script src="jquery.js" type="text/javascript"></script> <script src="jquery.lazyload.js" type="text/javascript"></script> b. 需要懒加载的图片,①.增加 data-origina

js懒加载异步操作解决办法

ajax分页请求后台数据事先定义一个number var number = 0; var getBonusPointsList = function(id,num,key,sign){ var data2 = { userId:id, number:num, accessKeyId:key, sign:sign }; data2 = JSON.stringify(data2); $.ajax({ url:'http://192.168.1.161:8080/user/getBonusPoints

jquery.lazyload (JS懒加载框架使用详解)

/** 本地加载方式加载JS*/        NSString *path = [[NSBundle mainBundle] pathForResource:@"jquery.js" ofType:nil];        NSString *path2 = [[NSBundle mainBundle] pathForResource:@"jquery.lazyload.js" ofType:nil];                NSURL *url = [N

纯JS实现加载更多(VUE框架)

<template> <div class = 'car_list' reft='scrollobx' @scroll='scrollready($event)'> </div> </template> <script> export default { data() { return { lengthThreshold: 50, //当滑动到距离低端50px时,更新数据 timeThreshold: 300, promise: null } }

【JavaScript】使用纯JS实现多张图片的懒加载Lazy(附源码)

一.效果图如下 上面的效果图,效果需求如下 1.还没加载图片的时候,默认显示加载图片背景图 2.刚开始进入页面,自动加载第一屏幕的图片 3.下拉界面,当一张图片容器完全显露出屏幕,即刻加载图片,替换背景图 4.加载图片的时候,有渐进显示图片效果 二.难点 1)如何Ajax请求数据 2)如何动态将json数据绑定到html中. 3)如何通过对图片的定位计算,触发图片懒加载机制 4)加分项,显示图片时有渐现的过渡动画 三.前期知识点 1)Ajax相关知识,XMLHttpRequest对象,所有现代的

代码: 两列图片瀑布流(一次后台取数据,图片懒加载。下拉后分批显示图片。图片高度未知,当图片onload后才显示容器)

代码: 两列图片瀑布流(一次后台取数据,无ajax,图片懒加载.下拉后分批显示图片.图片高度未知,当图片onload后才显示容器) [思路]: 图片瀑布流,网上代码有多种实现方式,也有各类插件.没找到合意的,所以根据网上找的一段代码,进行了较大改动. 需引用 zepto 或 jquery. 我这个是应用于手机上的,两列瀑布流,图片高度未知——等图片的onloaded事件触发后,才对容器进行计算和定位. 大容器是 $("#imgList"),容器格子是$(".pin"

js效果笔记:怎样实现图片的懒加载以及jquery.lazyload.js的使用

在项目中有时候会用到图片的延迟加载,那么延迟加载的好处是啥呢? 我觉得主要包括两点吧,第一是在包含很多大图片长页面中延迟加载图片可以加快页面加载速度:第二是帮助降低服务器负担. 下面介绍一下常用的延迟加载插件jquery.lazyload.js以及怎样实现一个延迟加载的插件. 一:jquery.lazyload.js插件 lazyload是jQuery写的延迟加载插件,在浏览器可视区域外的图片不会被载入, 直到用户将页面滚动到它们所在的位置. 这与图片预加载的处理方式正好是相反的. 实现原理 首

jQuery延迟加载(懒加载)插件 – jquery.lazyload.js

Lazy Load 是一个用 JavaScript 编写的 jQuery 插件. 它可以延迟加载长页面中的图片. 在浏览器可视区域外的图片不会被载入, 直到用户将页面滚动到它们所在的位置. 这与图片预加载的处理方式正好是相反的.在包含很多大图片长页面中延迟加载图片可以加快页面加载速度. 浏览器将会在加载可见图片之后即进入就绪状态. 在某些情况下还可以帮助降低服务器负担. Demo页面: 基本选项 淡入效果 对不支持JavaScript浏览器的降级处理 水平滚动 容器内水平滚动 容器内垂直滚动 页

图片懒加载--lazyload.js的用法

这几天公司的项目已经完成的差不多了,只剩下各种优化问题.今天着重于图片加载的优化.当一个页面需要下拉很长而且又有过多的图片要加载时,就会发生很多http请求,就会拉慢网页加载速度,用户体验不友好.怎么解决这个问题呢?jQuery插件库中有个插件lazyload.js可以实现图片懒加载. lazyload.js的原理就是将真正要加载的图片的地址放在另一个属性中,而图片的src的地址则是一个1px *1px的占位图,这样在网页加载过程中,首先下载的是这个占位图,当网页加载完成后,下拉页面时再下载在可