原生js触底加载案例

2023-11-13

 data() {
    return {
      RoomData: [],
      isBool: false,
      limit: 0,
      isLoading: false,
    }
  },
  methods: {
    roomClick(value) {
      location.href = value
    },
    RoomApi() {
      this.limit = this.limit + 30
      if (this.limit >= 210) {
        this.limit = 180
      }
      this.$axios.get(`http://open.douyucdn.cn/api/RoomApi/live`, {
        params: {
          limit: this.limit
        }
      }).then(r => {
        this.RoomData = r.data.data
      })
    },
    // 滚动回调函数
    scrollHande() {
      // 节流
      // 获取内容高度
      var scrollH = document.documentElement.scrollHeight
      // 获取窗口高度
      var innerH = window.innerHeight
      // 获取滚出去的内容高度
      var top = document.body.scrollTop || document.documentElement.scrollTop
      // 当内容还剩余200的高度未滚出的时候发送请求
      console.log(this.limit);
      if (scrollH - top - innerH < 200) {
        // 节流
        if (!this.isLoading) {
          this.isLoading = true;
          setTimeout(() => {
            // 发送请求
            this.RoomApi();
            this.isLoading = false
          }, 500)
        }
      }

    },
    bindScroll() {
      window.addEventListener('scroll', this.scrollHande)
    },
    // 清除scroll事件
    clearScroll() {
      window.removeEventListener('scroll', this.scrollHande)
    }
  },
  created() {
    this.RoomApi()
    this.bindScroll()
  },

  destroyed() {
    this.clearScroll()
  }

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

原生js触底加载案例 的相关文章

  • 如何按多个项目搜索/过滤列表?

    我正在寻找一个示例 或者可能是一个关于通过在文本框中输入的多个项目来过滤 搜索项目列表的方法的一点提示 假设我有一个列表 ul li Coffee li li Tea li li Milk li li Water li li Juice l
  • 如何将 Django 中的数组传递给模板并在 JavaScript 中使用它

    我想将数组传递给模板 然后通过 JavaScript 使用它 In my views py I have arry1 Str 500 20 return render to response test html array1 arry1 在
  • 为什么隐式符号到字符串转换会导致 JavaScript 中出现类型错误?

    有一个 toString on Symbol在 ES6 中 它返回字符串表示形式Symbol 但想知道为什么 Symbol 不起作用 运行这个表达式会抛出TypeError我没想到 后者只是打电话吗 toString 在一个新的Symbol
  • JavaScript - 无需布尔值即可运行一次

    有没有办法只运行一段JavaScript代码ONCE 而不使用布尔标志变量来记住它是否已经运行过 具体来说not就像是 var alreadyRan false function runOnce if alreadyRan return a
  • 您可以将现有的 div 复制到模式对话框吗

    我有一个带有多个面板的仪表板来显示不同的信息 我希望能够添加一个按钮来以模式显示面板 我正在使用引导程序 我所能找到的只是已经编写的模态 我想复制作为面板的 div 标签的内容 然后将其显示在模型中 但我不确定如何进行 该面板的 html
  • 如何在 Sequelize ORM 中限制连接行(多对多关联)?

    Sequelize 定义了两种模型 具有多对多关联的 Post 和 Tag Post belongsToMany db Tag through post tag foreignKey post id timestamps false Tag
  • 使用命名的成功/错误回调在 AngularJS 中声明一个 Promise

    我正在尝试做一些与 http 服务非常相似的事情 根据我的理解 http 返回一个 Promise 对象 使用它时 语法是 http success function data success callback error function
  • 在多个动态添加的表单上初始化 jQuery validate() 函数

    有人建议最好初始化一个 form validate 在页面加载而不是点击事件上运行 jquery form validate 插件仅允许在输入更改时提交 https stackoverflow com questions 10984196
  • 如何在php中使用一张图像绘制形状

    我需要使用图像的一部分来创建帧图像 例如 用户将从后端上传图像片段 现在我需要根据前端用户的要求在前端创建一个框架 用户将选择框架的高度和宽度 然后他将选择该图像片段 如下所示 我没有办法做到这一点 我尝试通过 css 和 html can
  • JavaScript:常量属性

    在javascript中 我可以将对象的属性声明为常量吗 这是一个示例对象 var XU Cc Components classes or function aXU this Cc Components classes var XU new
  • 如何循环遍历对象数组并生成键值对?

    我有一个像这样的对象数组 let someObj items id 12 value true id 34 value true id 56 value false 我想将其添加到现有对象中 其中 id 是该对象的键 如下所示 let ob
  • 窗口大小调整触发的 DOM 事件

    我有一个布局相当复杂的页面 最初打开页面时 某些元素的对齐存在问题 但是 可以通过更改浏览器窗口的大小来 永久 解决此问题 显然 我不希望用户必须调整浏览器窗口的大小才能使页面正确显示 所以我想知道是否有一种方法可以在页面首次加载时以编程方
  • 带有 mkdocs 的本地 mathjax

    我想在无法访问互联网的计算机上使用 MathJax 和 Mkdocs 因此我不能只调用 Mathjax CDN Config mkdocs yml site name My Docs extra javascript javascripts
  • Firebase 身份验证在 iOS 登录时卡住,没有错误

    我已经使用电子邮件和密码设置了 firebase 身份验证登录的最基本实现 firebase auth signInWithEmailAndPassword email password then gt console log Logged
  • 如何使用 JavaScript 获取元素的填充值?

    我有一个textarea在我的 HTML 中 我需要获取整数或浮点形式的填充数值 以像素为单位 我如何使用 JavaScript 获取它 我没有使用 jQuery 所以我正在寻找纯 JavaScript 解决方案 这将返回padding l
  • JavaScript 提升解释

    下面的片段有什么区别 var a 0 function b a 10 return function a b console log a gt 10 and var a 0 function b a 10 return function a
  • Django 将 JSON 数据传递给静态 getJSON/Javascript

    我正在尝试从 models py 中获取数据并将其序列化为views py 中的 JSON 对象 模型 py class Platform models Model platformtype models CharField max len
  • 具有固定顶部菜单的语义 UI 侧边栏

    Semantic UI 对其进行预警侧边栏页面 http semantic ui com modules sidebar html usage 当侧边栏出现时 固定位置内容可能会出现改变其位置的问题 然后它提供了该问题的两种可能的解决方案
  • AngularJS 在指令运行之前通过 AJAX 检索数据

    我正在使用 AngularUIuiMap http angular ui github com directives map实例化谷歌地图的指令 uiMap 指令非常适合处理硬编码数据 mapOptions and myMarkers 但是
  • JQuery 删除和内存泄漏

    我正在开发一个游戏 我看到了很多内存消耗 我使用jquery animate 动画完成后 我 remove 元素 我的问题是 从 dom 树中删除一个元素后 对象还存在记忆中吗 Javascript 是一种垃圾收集语言 这意味着当没有代码保

随机推荐

  • 如何将项目上传到Gitee上

    一 首先保证本机已经安装了Git git官网安装完成之后 鼠标右键会出现Git GUI Here和Git Bash Here 二 上传代码到码云 核心 总共有7个步骤 1 首先要注册Gitee账号 并且新建一个仓库来存放项目文件 2 在本地
  • 使用Unity2018 自带高通AR组件(Vuforia)—— 创建Virtual Button

    之前翻译了一篇使用unity2017自带高通AR组件 Vuforia 的文章 昨天有位Bro问了一下怎么使用内置组件创建虚拟按钮 Virtual Button 在这里简单的叙述一下 一方面是回答那位Bro 另一方面是作为积累以防后续用到时忘
  • linux dev vda1占用磁盘,centos 磁盘清理 /dev/vda1系统盘满了

    df h 检查一台服务器磁盘使用空间 发现磁盘已经使用了100 思路是 1 cd usr 当然这里不一定是 usr目录 最好是cd到 根目录再执行下一步 2 du sh 看哪个目录占用空间大 3 重复前两步 根据实际情况删除或者移走 4 日
  • VirtualBox 共享文件夹设置

    在ubuntu中执行 mkdir share dir 新建文件夹 然后挂载 sudo mount t vboxsf share share dir 就可以把windows中的E share文件夹挂在为ubuntu中的share dir文件夹
  • MySql基础复习

    数据库的基本操作 如何创建数据库 数据库的删除操作 存储引擎的了解及其工作原理和如何选择 1 创建数据库 创建数据库是在系统磁盘上划分一块区域用于数据的存储和管理 mysql安装完成以后 将会在其data目录下自动创建几个必须的数据库 可以
  • canvas学习笔记(详细)

    Canvas 一 Canvas基础知识 1 画布 画布是H5中一个重要的概念 它面向开发人员提供了非常底层的绘图接口 使得绘制速度可以大幅提高 2 canvas元素 canvas 标签只有两个属性 width和height 这些都是可选的
  • 晶振工作原理及参数详解(最透彻)

    原文链接点击这里 晶振是石英晶体谐振器 quartz crystal oscillator 的简称 也称有源晶振 它能够产生中央处理器 CPU 执行指令所必须的时钟频率信号 CPU一切指令的执行都是建立在这个基础上的 时钟信号频率越高 通常
  • 系统概要设计说明书_「软件项目管理入门」(23) 如何做好概要设计?

    实际上需求分析是一个很复杂的也是很重要的环节 如果要完整的阐述 三言两语肯定不够 好在我这个系列只是和大家分享一些心得 这里就适可而止了 以后有机会再和大家共同探讨这方面的问题 需求分析的输出主要针对乙方 但需要甲方确认 所以很多人误以为甲
  • mysql规范总结

    参考文献 https www cnblogs com qlqwjy p 8425861 html https blog csdn net u010498753 article details 85966709 一 基本规范要求 1 没有特殊
  • Python字典中8个常见内置函数,一次性给你总结

    字典是Python中很重要的数据类型 我们在日后的学习中 会经常遇到 因此 有8个常用的内置函数 我觉得你一定需要知道 d clear 含义 清除字典 d a 10 b 20 c 30 gt gt gt d a 10 b 20 c 30 g
  • Proability and Bayes’ NET

    Probabilistic Inference compute a desired probabilities from others known probabilities 我们通常计算条件概率 each possible state f
  • gorm基础05--CRUD 接口-更新

    gorm基础05 CRUD 接口 更新 介绍 案例 说明 介绍 上文 gorm基础04 CRUD 接口 查询 介绍了gorm 中常见查询方法 本文继续介绍gorm中常见的更新方法 具体包括 保存所有字段 更新单个列 更新多个列 更新选定字段
  • 【零基础学Rust

    文章标题 简介 一 元组 1 定义元组 2 访问元组元素 3 元组解构 4 元组在函数中的应用 二 数组 1 数组的声明和初始化 2 访问数组元素 3 数组的遍历 4 数组的长度 5 数组和函数 三 向量 1 创建向量 2 访问向量 3 修
  • IAR编译项目时报以下错误

    根本原因是因为你宏定义不符合规范
  • OpenCASCADE可视化:使用C/C++演示的3D术语表

    OpenCASCADE可视化 使用C C 演示的3D术语表 在本文中 我们将使用C C 代码和OpenCASCADE库来演示一些与3D图形相关的术语 OpenCASCADE是一个开源的CAD CAE CAM软件开发平台 它提供了丰富的几何建
  • KEIL5配置astyle

    比较清爽的参数 E style google U p n
  • lighttpd支持AJAX吗,lighttpd

    Lighttpd 是一个德国人领导的开源Web服务器软件 软件名称 lighttpd 软件版本 1 4 49 更新时间 2018 03 11软件语言 英语 简 介 Lighttpd 开源Web服务器软件 操作系统 Linux Windows
  • chrome使用指南

    目录 常用快捷键 常用插件 Octotree github源码浏览 GitCodeTree github gitee源码浏览 Axure RP Extension for Chrome 查看原型图 Tampermonkey 油猴脚本 云盘管
  • Flink CDC问题

    这里会列举出一些关键配置和遇到的问题 一直补充 Oracle CDC 1 SUPPLEMENTAL LOG在库和表上都需要执行 不是只有表上 ALTER TABLE inventory customers ADD SUPPLEMENTAL
  • 原生js触底加载案例

    data return RoomData isBool false limit 0 isLoading false methods roomClick value location href value RoomApi this limit