Vue混入mixins滚动触底的方法


Posted in Javascript onNovember 22, 2019

前言

在app端常常看到类似加载数据的动画,接下来我们来实现滚动触底加载动画提示,以及如何复用这些逻辑。

Vue混入mixins滚动触底的方法

如何判断滚动触底

来看下几张图:

情况一:

当文档高度还为超过可视区域高度时,不存在滚动,所以也没有滚动触底

Vue混入mixins滚动触底的方法 

情况二:

当文档高度超过可视区域的高度时,还有剩余的文档没有滚动完,也就是说 可视区域高度 + 滚动高度 < 文档高度 ,此时没有达到滚动触底的条件

Vue混入mixins滚动触底的方法 

情况三:

文档高度大于可视区域,并且滚动到文档底部, 也就是说 可视区域高度 + 滚动高度 = 文档高度

Vue混入mixins滚动触底的方法 

判断是否滚动到底

经过上面三种情况的分析,我们需要拿到 可视区域的高度 , 滚动高度 , 文档高度 这三个变量来进行比较。

可视区域的高度

function getWindowHeight() {
 return document.documentElement.clientHeight;
}

滚动高度

对有doctype申明的页面使用document.documentElement.scrollTop,safari特例独行:使用 window.pageYOffset

function getScrollHeight() {
 return Math.max(document.documentElement.scrollTop,window.pageYOffset||0)
}

文档高度

function getDocumentTop() {
 return document.documentElement.offsetHeight;
}

代码实现

触底打印

最后

将滚动触底的逻辑和 UI 都集成到 scroll.js 中,复用都方式可以放在 mixins 可以抽离成 v-directive,这样我们可以接受到绑定的 dom 不仅仅可以做 window 的滚动触底事件的判断,也可以 实现单个元素的滚动事件触底的监听 。后续可以在实现 v-directive 的版本。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jquery 入门教程 [翻译] 推荐
Aug 17 Javascript
让div层随鼠标移动的实现代码 ie ff
Dec 18 Javascript
再谈javascript面向对象编程
Mar 18 Javascript
replace()方法查找字符使用示例
Oct 28 Javascript
Window.Open如何在同一个标签页打开
Jun 20 Javascript
javascript中定义类的方法详解
Feb 10 Javascript
javascript实现的登陆遮罩效果汇总
Nov 09 Javascript
深入学习JavaScript的AngularJS框架中指令的使用方法
Mar 05 Javascript
利用JS如何计算字符串所占字节数示例代码
Sep 13 Javascript
JS实现页面数据懒加载
Feb 13 Javascript
通过JS判断网页是否为手机打开
Oct 28 Javascript
带你彻底理解JavaScript中的原型对象
Apr 14 Javascript
超简单的微信小程序轮播图
Nov 22 #Javascript
微信小程序实现Swiper轮播图效果
Nov 22 #Javascript
Js代码中的span拼接问题解决
Nov 22 #Javascript
微信小程序商品详情页底部弹出框
Nov 22 #Javascript
小程序实现图片预览裁剪插件
Nov 22 #Javascript
Vue数据双向绑定底层实现原理
Nov 22 #Javascript
Node如何后台数据库使用增删改查功能
Nov 21 #Javascript
You might like
德生PL550的电路分析
2021/03/02 无线电
一个简单实现多条件查询的例子
2006/10/09 PHP
PHP与MySQL开发中页面出现乱码的一种解决方法
2007/07/29 PHP
PHP utf-8编码问题,utf8编码,数据库乱码,页面显示输出乱码
2013/04/08 PHP
基于empty函数的输出详解
2013/06/17 PHP
php实现的生成排列算法示例
2019/07/25 PHP
PHP设计模式概论【概念、分类、原则等】
2020/05/01 PHP
jquery 动态创建元素的方式介绍及应用
2013/04/21 Javascript
JQ获取动态加载的图片大小的正确方法分享
2013/11/08 Javascript
前端框架学习总结之Angular、React与Vue的比较详解
2017/03/14 Javascript
详解JS数据类型的值拷贝函数(深拷贝)
2017/07/13 Javascript
vue 使用axios 数据请求第三方插件的使用教程详解
2019/07/05 Javascript
layui使用templet格式化表格数据的方法
2019/09/16 Javascript
javascript实现鼠标点击生成文字特效
2019/12/24 Javascript
原生javascript制作的拼图游戏实现方法详解
2020/02/23 Javascript
python中关于时间和日期函数的常用计算总结(time和datatime)
2013/03/08 Python
跟老齐学Python之集合(set)
2014/09/24 Python
Python xlrd读取excel日期类型的2种方法
2015/04/28 Python
Python实现控制台输入密码的方法
2015/05/29 Python
在 Python 应用中使用 MongoDB的方法
2017/01/05 Python
Python实现好友全头像的拼接实例(推荐)
2017/06/24 Python
简单谈谈python中的lambda表达式
2018/01/19 Python
python爬取个性签名的方法
2018/06/17 Python
Sanic框架基于类的视图用法示例
2018/07/18 Python
解决PyCharm同目录下导入模块会报错的问题
2018/10/13 Python
python删除列表元素的三种方法(remove,pop,del)
2019/07/22 Python
使用Python合成图片的实现代码(图片添加个性化文本,图片上叠加其他图片)
2020/04/30 Python
Pytorch 使用CNN图像分类的实现
2020/06/16 Python
Python爬虫后获取重定向url的两种方法
2021/01/19 Python
css3实现冲击波效果的示例代码
2018/01/11 HTML / CSS
户外婚礼策划方案
2014/02/08 职场文书
品质标语大全
2014/06/21 职场文书
IT工程师岗位职责
2014/07/04 职场文书
领导班子遵守党的政治纪律情况对照检查材料
2014/09/26 职场文书
pytorch锁死在dataloader(训练时卡死)
2021/05/28 Python
手残删除python之后的补救方法
2021/06/26 Python