当前位置: 首页 > news >正文

前端JS必用工具【js-tool-big-box】学习,获取当前浏览器向上滚动还是向下滚动,获取当前距离顶部和底部的距离

这一小节,我们说一下 js-tool-big-box 添加的最新工具方法,在日常前端开发工作中,如果网页很长,我们就需要获取当前浏览器是在向上滚动,还是向下滚动。如果向上滚动,滚动到0的时候呢,需要做一些操作;如果浏览器是在乡下滚动,如果滚动到底部有一定距离的时候呢,也需要做一些操作。例如距离底部还差200px的时候呢,我们就可以提前请求下一页数据拉,不至于滚动到0的时候再请求,那就会有点晚,让用户等很久。

1 安装和引入js-tool-big-box

执行安装命令

npm i js-tool-big-box

在项目中引入browserBox对象,判断浏览器滚动方向和距离的公共方法,在这个对象下面

import { browserBox } from 'js-tool-big-box';

2 使用准备

以vue项目为例,想要浏览器滚动,我们就需要预备很多元素,使网页过长;除此之外,我们需要准备一个初始化变量,这个变量用来获取当前浏览器距离顶部的距离,代码如下:

<template><div class="box-404"><p>js-tool-big-box</p><p>做功能更丰富的前端JS库</p><div class="box11">内容块1</div><div class="box11">内容块2</div><div class="box11">内容块3</div><div class="box11">内容块4</div><div class="box11">内容块5</div><div class="box11">内容块6</div><div class="box11">内容块7</div><div class="box11">内容块8</div><div class="box11">内容块9</div><div class="box11">内容块10</div><div class="box11">内容块11</div><div class="box11">内容块12</div><div class="box11">内容块13</div><div class="box11">内容块14</div><div class="box11">内容块15</div><div class="box11">内容块16</div><div class="box11">内容块17</div><div class="box11">内容块18</div><div class="box11">内容块19</div><div class="box11">内容块20</div><div class="box11">内容块21</div><div class="box11">内容块22</div><div class="box11">内容块23</div><div class="box11">内容块24</div><div class="box11">内容块25</div><div class="box11">内容块26</div><div class="box11">内容块27</div><div class="box11">内容块28</div><div class="box11">内容块29</div><div class="box11">内容块30</div><div class="box11">内容块31</div><div class="box11">内容块32</div><div class="box11">内容块33</div><div class="box11">内容块34</div><div class="box11">内容块35</div></div>
</template><script>
import { browserBox } from 'js-tool-big-box';export default {name: 'Page404',data () {return {val: '',lastScrollTop: 0, // 初始化滚动高度}},created() {},mounted() {window.addEventListener('scroll', this.handleScroll);},methods: {handleScroll() {},}
}
</script>

在以上代码中,我们初始化了很多 DIV 元素,用来生成滚动网页;

初始化了当前滚动高度,变量名为:lastScrollTop

mounted 钩子函数中,添加了 scroll 滚动监听函数;

添加 handleScroll 函数,稍后使用

3 使用方法

methods: {handleScroll() {let lastScrollTop = this.lastScrollTop;let scrollInfo = browserBox.getScrollInfo(lastScrollTop);this.lastScrollTop = scrollInfo.lastScrollTop;console.log('检测滚动的对象信息:', scrollInfo);},}

在以上代码中,我们补齐了 handleScroll 函数,获取当前浏览器向上滚动,还是向下滚动的方法名是 getScrollInfo 方法,我们看一下浏览器的效果吧

 如上图中,我们将浏览器乡下滚动了一点点,滚动了67px的距离,这个时候,方法告诉我们是在乡下滚动,当前距离顶部是67px,距离最底部是 3324px。

我们再往上滚动一点点,方法告诉我们,当前浏览器是在向上滚动,距离顶部还有20px,距离底部还有3371px啦。

4 方法总结

方法名返回值入参

getScrollInfo

返回一个对象,对象的属性分别为:

scrollDirection,值为 down || up;

lastScrollTop,表示当前距离浏览器顶部的距离,最小为0;

scrollBottom,表示当前浏览器距离底部的距离,最小为0.

第一个参数为必填项,表示外部初始化的那个

lastScrollTop值,需要注意的是,每次方法使用完,都要给外部的这个lastScrollTop重新赋值,保持最新,然后再次使用的时候,再传进去,就像上面的实例代码一样

 

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • vue-$set修改深层对象的值
  • 【云原生进阶之数据库技术】第二章-Oracle-原理-4.6.3.7-闪回事务查询技术
  • 我用香橙派做了一个Klipper 3D打印控制器
  • QuanTA: 一种新的高秩高效微调范式
  • 码蹄集部分题目(2024OJ赛18期;并查集+ST表+贪心)
  • GMT shp转gmt数据
  • 618大促有哪些好物是必买的?这些好物你绝对不能错过!
  • HTML静态网页成品作业(HTML+CSS)—— 兰蔻化妆品网页(1个页面)
  • 目前比较好用的LabVIEW架构及其选择
  • 【Neo4j】Windows11使用Neo4j导入CSV数据可视化知识图谱
  • 人工智能和机器学习这两个概念有什么区别?
  • 肾合的秘密:长期出汗,身体在告诉你什么?
  • 镜舟科技携手中通快运,入选 2024 爱分析·数据库应用实践报告
  • 【Linux】匿名管道的应用场景 --- 进程池
  • Python从0到100(三十二):lxml模块的学习与应用
  • [译]前端离线指南(上)
  • 〔开发系列〕一次关于小程序开发的深度总结
  • ➹使用webpack配置多页面应用(MPA)
  • 07.Android之多媒体问题
  • Git同步原始仓库到Fork仓库中
  • javascript面向对象之创建对象
  • mac修复ab及siege安装
  • Otto开发初探——微服务依赖管理新利器
  • pdf文件如何在线转换为jpg图片
  • PHP面试之三:MySQL数据库
  • Python学习之路16-使用API
  • React Native移动开发实战-3-实现页面间的数据传递
  • -- 查询加强-- 使用如何where子句进行筛选,% _ like的使用
  • 深度学习中的信息论知识详解
  • 手写双向链表LinkedList的几个常用功能
  • 自动记录MySQL慢查询快照脚本
  • 湖北分布式智能数据采集方法有哪些?
  • 容器镜像
  • ​LeetCode解法汇总2808. 使循环数组所有元素相等的最少秒数
  • #define、const、typedef的差别
  • #LLM入门|Prompt#2.3_对查询任务进行分类|意图分析_Classification
  • $refs 、$nextTic、动态组件、name的使用
  • (8)STL算法之替换
  • (Demo分享)利用原生JavaScript-随机数-实现做一个烟花案例
  • (ISPRS,2023)深度语义-视觉对齐用于zero-shot遥感图像场景分类
  • (第三期)书生大模型实战营——InternVL(冷笑话大师)部署微调实践
  • (多级缓存)多级缓存
  • (收藏)Git和Repo扫盲——如何取得Android源代码
  • (四)activit5.23.0修复跟踪高亮显示BUG
  • (转)真正的中国天气api接口xml,json(求加精) ...
  • ****** 二十三 ******、软设笔记【数据库】-数据操作-常用关系操作、关系运算
  • *ST京蓝入股力合节能 着力绿色智慧城市服务
  • .bat批处理(十一):替换字符串中包含百分号%的子串
  • .NET CF命令行调试器MDbg入门(三) 进程控制
  • .NET 服务 ServiceController
  • .Net6 Api Swagger配置
  • .NET高级面试指南专题十一【 设计模式介绍,为什么要用设计模式】
  • .NET之C#编程:懒汉模式的终结,单例模式的正确打开方式
  • /dev下添加设备节点的方法步骤(通过device_create)
  • @GlobalLock注解作用与原理解析