h5微网页向上滑动屏幕加载跟多数据例子(原生js)
来源:互联网 发布:淘宝卖家注册流程图 编辑:程序博客网 时间:2024/05/24 06:47
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'MyJsp.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<script src="/Bootstrap/bootstrap-3.3.5/js/tests/vendor/jquery.min.js"></script>
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
<script>
$(document).bind("scroll", srcollEvent);
/*touchstart事件:当手指触摸屏幕时候触发,即使已经有一个手指放在屏幕上也会触发。
touchmove事件:当手指在屏幕上滑动的时候连续地触发。在这个事件发生期间,调用preventDefault()事件可以阻止滚动。
touchend事件:当手指从屏幕上离开的时候触发。
touchcancel事件:当系统停止跟踪触摸的时候触发。*/
$(document).bind("touchstart", startEvent).bind("touchmove", moveEvent).bind("touchcancel", stopEvent).bind("touchend", stopEvent);
var isScrollStop = true; //页面是否停止滚动 防止屏幕有滑动但还没到底部就开始加载数据
var isMoveDown = false; //防止手指向上滑动屏幕开始加载数据
var isLoading = false; //防止异步请求数据未返回到前端的时候重复提交请求
var isMoved = false; //手指是否在滑动屏幕 防止出现手指触摸屏幕而没有滑动就加载数据
var startY = 0;
var startX = 0;
function srcollEvent() {
if ($(document).scrollTop() > 0) {
isScrollStop = false;
}
//如果是左右滑动异步加载数据就用下面的代码
/*
if ($(document).scrollLeft() > 0) {
isScrollStop = false;
}*/
}
function startEvent() {
startY = event.targetTouches[0].clientY;
//如果是左右滑动加载数据就用下面的代码
//startX = event.targetTouches[0].clientX;
isScrollStop = true;
isMoved = false;
isMoveDown = false;
}
function moveEvent() {
var Y = event.targetTouches[0].clientY;
if (startY > Y) {
isMoveDown = true;
} else {
isMoveDown = false;
}
//如果是左右滑动加载数据就用下面的代码
/*var X = event.targetTouches[0].clientX;
if (startX > X) {
isMoveDown = true;
} else {
isMoveDown = false;
}*/
isMoved = true;
}
function stopEvent() {
if (isScrollStop && isMoved && !isLoading && isMoveDown) {
console.log("分页加载");
loadData();
}
}
var index = 0;
function loadData() { //模拟向后台异步加载数据
isLoading = true; //异步加载数据之前先设置为正在等待数据
$("table").append("<tr><td>异步加载数据" + index + "</td></tr>");
$("table").append("<tr><td>异步加载数据" + (index+1) + "</td></tr>");
$("table").append("<tr><td>异步加载数据" + (index+2) + "</td></tr>");
$("table").append("<tr><td>异步加载数据" + (index+3) + "</td></tr>");
$("table").append("<tr><td>异步加载数据" + (index+4) + "</td></tr>");
$("table").append("<tr><td>异步加载数据" + (index+5) + "</td></tr>");
//此时数据已返回到前端
index+=5;
isLoading = false;
isMoved = false;
}
function sleep() {
var t1 = new Date();
var t2 = new Date();
while ((t2 - t1) < 3000) {
t2 = new Date();
}
}
</script>
</head>
<body >
<table style="font-size:100px">
<tr>
<td>测试数据1</td>
</tr>
<tr>
<td>测试数据2</td>
</tr>
<tr>
<td>测试数据3</td>
</tr>
<tr>
<td>测试数据4</td>
</tr>
<tr>
<td>测试数据5</td>
</tr>
<tr>
<td>测试数据6</td>
</tr>
<tr>
<td>测试数据7</td>
</tr>
<tr>
<td>测试数据1</td>
</tr>
<tr>
<td>测试数据2</td>
</tr>
<tr>
<td>测试数据3</td>
</tr>
<tr>
<td>测试数据4</td>
</tr>
<tr>
<td>测试数据5</td>
</tr>
<tr>
<td>测试数据6</td>
</tr>
<tr>
<td>测试数据7</td>
</tr>
</table>
</body>
</html>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'MyJsp.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<script src="/Bootstrap/bootstrap-3.3.5/js/tests/vendor/jquery.min.js"></script>
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
<script>
$(document).bind("scroll", srcollEvent);
/*touchstart事件:当手指触摸屏幕时候触发,即使已经有一个手指放在屏幕上也会触发。
touchmove事件:当手指在屏幕上滑动的时候连续地触发。在这个事件发生期间,调用preventDefault()事件可以阻止滚动。
touchend事件:当手指从屏幕上离开的时候触发。
touchcancel事件:当系统停止跟踪触摸的时候触发。*/
$(document).bind("touchstart", startEvent).bind("touchmove", moveEvent).bind("touchcancel", stopEvent).bind("touchend", stopEvent);
var isScrollStop = true; //页面是否停止滚动 防止屏幕有滑动但还没到底部就开始加载数据
var isMoveDown = false; //防止手指向上滑动屏幕开始加载数据
var isLoading = false; //防止异步请求数据未返回到前端的时候重复提交请求
var isMoved = false; //手指是否在滑动屏幕 防止出现手指触摸屏幕而没有滑动就加载数据
var startY = 0;
var startX = 0;
function srcollEvent() {
if ($(document).scrollTop() > 0) {
isScrollStop = false;
}
//如果是左右滑动异步加载数据就用下面的代码
/*
if ($(document).scrollLeft() > 0) {
isScrollStop = false;
}*/
}
function startEvent() {
startY = event.targetTouches[0].clientY;
//如果是左右滑动加载数据就用下面的代码
//startX = event.targetTouches[0].clientX;
isScrollStop = true;
isMoved = false;
isMoveDown = false;
}
function moveEvent() {
var Y = event.targetTouches[0].clientY;
if (startY > Y) {
isMoveDown = true;
} else {
isMoveDown = false;
}
//如果是左右滑动加载数据就用下面的代码
/*var X = event.targetTouches[0].clientX;
if (startX > X) {
isMoveDown = true;
} else {
isMoveDown = false;
}*/
isMoved = true;
}
function stopEvent() {
if (isScrollStop && isMoved && !isLoading && isMoveDown) {
console.log("分页加载");
loadData();
}
}
var index = 0;
function loadData() { //模拟向后台异步加载数据
isLoading = true; //异步加载数据之前先设置为正在等待数据
$("table").append("<tr><td>异步加载数据" + index + "</td></tr>");
$("table").append("<tr><td>异步加载数据" + (index+1) + "</td></tr>");
$("table").append("<tr><td>异步加载数据" + (index+2) + "</td></tr>");
$("table").append("<tr><td>异步加载数据" + (index+3) + "</td></tr>");
$("table").append("<tr><td>异步加载数据" + (index+4) + "</td></tr>");
$("table").append("<tr><td>异步加载数据" + (index+5) + "</td></tr>");
//此时数据已返回到前端
index+=5;
isLoading = false;
isMoved = false;
}
function sleep() {
var t1 = new Date();
var t2 = new Date();
while ((t2 - t1) < 3000) {
t2 = new Date();
}
}
</script>
</head>
<body >
<table style="font-size:100px">
<tr>
<td>测试数据1</td>
</tr>
<tr>
<td>测试数据2</td>
</tr>
<tr>
<td>测试数据3</td>
</tr>
<tr>
<td>测试数据4</td>
</tr>
<tr>
<td>测试数据5</td>
</tr>
<tr>
<td>测试数据6</td>
</tr>
<tr>
<td>测试数据7</td>
</tr>
<tr>
<td>测试数据1</td>
</tr>
<tr>
<td>测试数据2</td>
</tr>
<tr>
<td>测试数据3</td>
</tr>
<tr>
<td>测试数据4</td>
</tr>
<tr>
<td>测试数据5</td>
</tr>
<tr>
<td>测试数据6</td>
</tr>
<tr>
<td>测试数据7</td>
</tr>
</table>
</body>
</html>
阅读全文
0 0
- h5微网页向上滑动屏幕加载跟多数据例子(原生js)
- 原生js实现网页触屏滑动
- cocos js 截屏 (原生 + H5)
- 使用原生JS操作网页的几个例子
- 原生js左右滑动
- H5+原生js 雪花特效
- 原生js 仿微信网页加载进度条的提示
- 网页(H5/JS)游戏
- 网页右下角向上滑动的实现
- 原生js实现公告栏向上滚动
- Web App 向上滑动动态加载数据
- H5加载更多小例子
- android h5 js 混合开发解决webview加载白屏,不加载网页的问题(硬件加速网页渲染,优化体验)
- WebView加载h5视频网页
- 原生js懒加载
- 原生移动端滑动js
- 原生js之滑动轮播图
- 手机端触摸滑动(H5+CSS3+JS+Swiper)
- 大数据的核心价值是什么
- Bitmap: Error, cannot access an invalid/free'd bitmap here!
- Android消息机制底层原理
- 《oracle虚拟机配置流程(四)测试网站并登录》共四步
- test1
- h5微网页向上滑动屏幕加载跟多数据例子(原生js)
- tr:hover 背景变色的坑
- 人生苦短何不学习python
- 第十七篇:JAVA加密解密之PBE(Password Based Encryption)算法
- C#实现jQuery的方法连缀
- [CS:APP] Attack Lab
- Scale(标准化)和Normalization(正则化) 区别
- linux echo 用法
- docker-初接触