js实现页面滑动到最底部触发内容加载
JS 实现 页面 加载 内容 滑动 触发 底部
2023-09-14 09:07:18 时间
首先要清楚3个定义:
- 文档高度: 这是整个页面的高度
- 可视窗口高度: 这是你看到的浏览器可视屏幕高度
- 滚动条滚动高度: 滚动条下滑过的高度
所以, 当 文档高度 == 可视窗口高度 + 滚动条高度
时,滚动条正好到底.
以下三个方法分别获取上面3个高度值
scroll-event.js
//文档高度
function getDocumentTop() {
var scrollTop = 0, bodyScrollTop = 0, documentScrollTop = 0;
if (document.body) {
bodyScrollTop = document.body.scrollTop;
}
if (document.documentElement) {
documentScrollTop = document.documentElement.scrollTop;
}
scrollTop = (bodyScrollTop - documentScrollTop > 0) ? bodyScrollTop : documentScrollTop;
return scrollTop;
}
//可视窗口高度
function getWindowHeight() {
var windowHeight = 0;
if (document.compatMode == "CSS1Compat") {
windowHeight = document.documentElement.clientHeight;
} else {
windowHeight = document.body.clientHeight;
}
return windowHeight;
}
//滚动条滚动高度
function getScrollHeight() {
var scrollHeight = 0, bodyScrollHeight = 0, documentScrollHeight = 0;
if (document.body) {
bodyScrollHeight = document.body.scrollHeight;
}
if (document.documentElement) {
documentScrollHeight = document.documentElement.scrollHeight;
}
scrollHeight = (bodyScrollHeight - documentScrollHeight > 0) ? bodyScrollHeight : documentScrollHeight;
return scrollHeight;
}
/*
当滚动条滑动,触发事件,判断是否到达最底部
然后调用ajax处理函数异步加载数据
*/
window.onscroll = function () {
//监听事件内容
if (getScrollHeight() == getWindowHeight() + getDocumentTop()) {
//当滚动条到底时,这里是触发内容
//异步请求数据,局部刷新dom
ajax_function();
}
}
自己实现的异步加载数据函数模板示例
function ajax_function() {
$.get(
url,
data,
function (data) {
// dosomething
}
);
}
关于ajax请求可以参考我的文章: js:jquery的ajax请求模板
相关文章
- Fabric.js 使用纯色遮挡画布(前景色)
- 使用JS实现文字搬运工详解编程语言
- 用js实现的一个Flash滚动轮换显示图片代码生成器
- js调整select位置的函数
- select列表内容交换的js实现代码
- 在iframe里的页面编写js,实现在父窗口上创建动画效果展开和收缩的div(不变动iframe父窗口代码)
- js模拟权限选择实现代码(select操作)
- js将iframe中控件的值传到主页面控件中的实现方法
- js控制的回到页面顶端goTop的代码实现
- jquery滚动组件(vticker.js)实现页面动态数据的滚动效果
- 多种方法实现当jsp页面完全加载完成后执行一个js函数
- js实现菜单上下显示附效果图
- js快速排序的实现代码
- js或jquery实现页面打印可局部打印
- js动态删除div元素基本思路及实现代码
- 基于js与flash实现的网站flv视频播放插件代码
- 让html页面不缓存js的实现方法
- js实现键盘操作实现div的移动或改变的原理及代码
- js实现iframe跨页面调用函数的方法
- C#与js实现去除textbox文本框里面重复记录的方法
- JS按回车键实现登录的方法
- 一个获取第n个元素节点的js函数