美文网首页
慢慢买-实现懒加载的js分析

慢慢买-实现懒加载的js分析

作者: cj_jax | 来源:发表于2018-12-07 16:59 被阅读0次

我得慢慢买

分析:

1.获取到 返回值info对象,info内有一个result的数组,数组中的每一项都是一条单独的数据,这个数组赋值给arr

2.arr通过数组的splice的方法,将前四项数据取出

​ ps: splice(起始位置,删除的个数,替换数据)

3.如果有删除操作,返回的值就是删除的数据

4.删除数组中的前四项,并将这四项数据保存在str这个数组中

5.将这个数组添加到info对象中

mm_discount_list 包裹ul的大盒子

6.本次渲染的数组是into.obj,即数组str,里面只有四条数据

$('.mm_discount_list ul').html(template('list_tmp', info))
console.log(info);

7.注册浏览器的滚动条的监听事件

   $(window).on("scroll", function () {
   var height = $(".mm_discount_list").height() + $(".mm_discount_list").offset().top -
      ($(window).scrollTop() + $(window).height());
      //
    if (height < -100) {
      var str = arr.splice(0, 2);
      info.obj = str;
      $(".mm_discount_list ul").append(template("list_tmp", info));
    }
  })

8.height = 包裹ul的父盒子的高度 + ul父盒子距离顶部的距离-(浏览器的距离顶部的距离+当前可视区的高度)
初始状态下:
$(".mm_discount_list").height() 是一个定值,

​ $(".mm_discount_list").offset().top是这个父盒子距离顶部的距离,该值为一个固定值,

​ $(window).scrollTop() 滚动条卷去的距离 初始状态为0

​ $(window).height() 当前窗口可视区的高度

开始滚动
$(".mm_discount_list").height() 如果没有添加新的内容,不变

​ $(".mm_discount_list").offset().top 向上滚动变小

​ $(window).scrollTop() 向上滚动变大

​ $(window).height() 浏览器窗口,随着改变而改变,不动窗口大小值就不会变,正常情况下是固定值

结论:整体值越来越小

9.判断高度是否小于-100,
如果高度小于-100,每次截取2条数据,添加到info的obj中,在dom对象的后面追加数据,数据依然是一个模板引擎的内容,本次渲染两条数据,满足条件一次,渲染一次。
ps:每次渲染完成后,ul的父盒子的高度发生改变,

$(function () {

  $.ajax({
    type: 'get',
    //请求的地址
    url: 'http://127.0.0.1:9090/api/getinlanddiscount',
    dataType: 'json',
    success: function (info) {
    
    //1.获取到 返回值info对象,info内有一个result的数组,数组中的每一项都是一条单独的数据,这个数组赋值给arr
    //2.arr通过数组的splice的方法,将前四项数据取出
    //ps: splice(起始位置,删除的个数,替换数据)
    //3.如果有删除操作,返回的值就是删除的数据
    
      var arr = info.result;
      
      //4.删除数组中的前四项,并将这四项数据保存在str这个数组中
      var str = arr.splice(0, 4);
      
      //5.将这个数组添加到info对象中
      info.obj = str;
      
      //mm_discount_list 包裹ul的大盒子
      //6.本次渲染的数组是into.obj,即数组str,里面只有四条数据
      $('.mm_discount_list ul').html(template('list_tmp', info))
      console.log(info);
      
      //7.注册浏览器的滚动条的监听事件
      $(window).on("scroll", function () {
        //height = 包裹ul的父盒子的高度 + ul父盒子距离顶部的距离-(浏览器的距离顶部的距离+当前可视区的高度)
        //初始状态下: 
        //$(".mm_discount_list").height() 是一个定值,
        //$(".mm_discount_list").offset().top是这个父盒子距离顶部的距离,该值为一个固定值,
        
        //$(window).scrollTop() 滚动条卷去的距离 初始状态为0
        
        //$(window).height() 当前窗口可视区的高度
        
        //开始滚动
        //$(".mm_discount_list").height() 如果没有添加新的内容,不变
        
        //$(".mm_discount_list").offset().top 向上滚动变小
        
        //$(window).scrollTop() 向上滚动变大
        
        //$(window).height() 浏览器窗口,随着改变而改变,不动窗口大小值就不会变,正常情况下是固定值
        
        //整体值越来越小
        
        //判断高度是否小于-100, 
        //如果高度小于-100,每次截取2条数据,添加到info的obj中,在dom对象的后面追加数据,数据依然是一个模板引擎的内容,本次渲染两条数据,满足条件一次,渲染一次。
        ps:每次渲染完成后,ul的父盒子的高度发生改变,
        var height = $(".mm_discount_list").height() + $(".mm_discount_list").offset().top -
          ($(window).scrollTop() + $(window).height());
          //
        if (height < -100) {
          var str = arr.splice(0, 2);
          info.obj = str;
          $(".mm_discount_list ul").append(template("list_tmp", info));
        }
      })
    }
  })

})

相关文章

  • 慢慢买-实现懒加载的js分析

    我得慢慢买 分析: 1.获取到 返回值info对象,info内有一个result的数组,数组中的每一项都是一条单独...

  • 一份头条前端面试准备[整理稿]

    JS打乱数组 JS ajax JS bind 实现 懒加载 JS实现promise JS发布订阅模式 JSONP ...

  • Angular4-lazyload懒加载

    在Angular4中实现懒加载html、js、css等资源。利用Angular CLI实现懒加载,通过loadCh...

  • webpack打包代码实现

    webpack模块加载 异步模块加载 通过 import()实现指定模块的懒加载操作 懒加载的核心原理就是创建js...

  • 图片懒加载

    前端实现图片懒加载(lazyload)的两种方式 原生JS实现最简单的图片懒加载 30行Javascript代码实...

  • JS实现懒加载

    1.懒加载的作用和原理 在我们展示多图片的场景下,类似淘宝或者百度图片,由于图片的数目过多,全部从服务器请求会给用...

  • Webpack高级配置「五」-- 懒加载 & 处理JSX & 处

    1.懒加载 abc.js 文件中定义数据: 动态引入数据 - 实现懒加载: 最后产出一个独立的js,等同于定义一个...

  • JS

    JS 懒加载,预加载 概念:懒加载也叫延迟加载:JS图片延迟加载,延迟加载图片或符合某些条件时才加载某些图片。预加...

  • Android开发之Viewpager+Fragment实现懒加

    网上的懒加载分析文章已经很多,这里也给出我自己的分析思路。 1 为什么要实现懒加载?原因是默认情况下ViewPag...

  • js实现图片懒加载

    现如今,网站载有的信息量越来越大,其中图片占据着很大一部分,这样一来可以使整个页以面图文结合的形式展现,更加美观。...

网友评论

      本文标题:慢慢买-实现懒加载的js分析

      本文链接:https://www.haomeiwen.com/subject/kcfxhqtx.html