JavaScript实现滚动加载更多


Posted in Javascript onDecember 27, 2020

本文实例为大家分享了JavaScript实现滚动加载更多的具体代码,供大家参考,具体内容如下

vscode

JavaScript实现滚动加载更多

index:

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>Title</title>
 <style>
 * {margin:0; padding: 0;}
 li {list-style: none;}
 body {background: #eee;}
 .wrapper {background: #fff;width: 970px; margin:20px auto; padding: 15px;}
 h1 {text-align: center; border-bottom: 1px solid #ddd; padding-bottom: 20px;}
 li {margin:20px 0; border-bottom: 1px dotted #eee; padding-bottom: 20px;}
 p { line-height: 25px;}
 </style>
 <script src="/jquery-1.11.3.js"></script>
</head>
<body>
 <div class="wrapper">
 <h1>新闻列表(加载更多)<script>document.write(new Date().toLocaleString())</script></h1>
 <ul>
 </ul>
 <div class="footer" style="text-align: center">
  <img style="width: 40px" src="" alt="">
 </div>
 </div>
 <script>
 let page = 1; // 默认是第1页
 let load = true;
 function getNewsList(page) {
  $(".footer img").attr("src","/timg.gif")
  load = false;
  $.get("/news",{page},res=>{
  // console.log(res)
  if(res.news.length){
   let str ="";
   // 客户端渲染,客户端自己通过ajax获取数据,自已渲染数据
   res.news.forEach(item=>{
   str += `
    <li>
    <h2><a href="#" rel="external nofollow" >${item.title}</a></h2>
    <p class="time">${item.time}</p>
    <p class="summary">${item.summary}</p>
    </li>
   `
   })
   $("ul").append(str)
   load = true;
  }else{
   $(".footer").html("--------------- 我是有底线的 --------------- ")
   load = false;
  }

  })
 }
 getNewsList(page); // 一上来就获取第1页的数据

 // 判断出什么时候到底部
 $(document).scroll(function () {
  let st = $(window).scrollTop(); // 卷上去的高度
  let ch = $(window).height(); // 一屏的高度
  let dh = $(document).height(); // 整个文档(整个内容)的高度
  if((st+ch) >= dh && load){
  // 滚动到了底部
  getNewsList(++page)
  }
 })
 </script>
</body>
</html>

JS:

let express = require("express");
let path = require("path");
var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017/";

let app = express();

// 托管静态资源
app.use(express.static(path.resolve(__dirname, "./public")))

// 当访问/ 响应一个html页面,不是渲染模板
app.get("/",(req,res)=>{
 res.sendFile(path.resolve(__dirname,"./views/index.html"))
})

// 当访问/news 响应一个json数据
// 如果一个路由,返回了一个Json数据,我们叫http://localhost:3000/news是api接口
// api:1)别人封装的方法,我们直接去调用 2)指一个url地址 叫api接口
app.get("/news",(req,res)=>{
 let page = req.query.page || 1; // page表示当前是第几页
 // page如果小于等于0
 (page <= 0) && (page = 1)

 // console.log(page)
 let pageSize = 5; // 每页显示多少条
 let offset = (page-1)*pageSize;
 MongoClient.connect(url, { useNewUrlParser: true }, function(err, db) {
 if (err) throw err;
 var dbo = db.db("news");
 dbo.collection("newslist").find({}).skip(offset).limit(pageSize).toArray(function(err, result) {
  if (err) throw err;
  // console.log(result); // 获取每一页的数据
  dbo.collection("newslist").count().then(result2=>{
  // result2表示一共有多少条数据
  let total = result2;
  let size = Math.ceil(total / pageSize)
  // 服务端渲染: 核心是使用模板引擎 jsp php asp out
  // 是把模板和数据柔和在一起,形成一个有真实数据的页面,响应给客户端
  res.json({
   news:result,
   total, // 总共多少条数据
   pageSize, // 每页显示多少条
   page, // 当前是第几页
   size, // 一菜有多少页
  })
  });
  db.close();
 });
 });

})

app.listen(3000,()=>{
 console.log("3000 ok~")
})

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

Javascript 相关文章推荐
脚本吧 - 幻宇工作室用到js,超强推荐expand.js
Dec 23 Javascript
JavaScript 继承的实现
Jul 09 Javascript
jquery select多选框的左右移动 具体实现代码
Jul 03 Javascript
jquery实现效果比较好的table选中行颜色
Mar 25 Javascript
jQuery中animate动画第二次点击事件没反应
May 07 Javascript
IE8利用自带的setCapture和releaseCapture解决iframe的拖拽事件方法
Oct 25 Javascript
AngularJS使用ng-Cloak阻止初始化闪烁问题的方法
Nov 03 Javascript
BootStrap Table后台分页时前台删除最后一页所有数据refresh刷新后无数据问题
Dec 28 Javascript
解决webpack -p压缩打包react报语法错误的方法
Jul 03 Javascript
解决Jquery下拉框数据动态获取的问题
Jan 25 jQuery
vue 解决computed修改data数据的问题
Nov 06 Javascript
JS时间戳与日期格式互相转换的简单方法示例
Jan 30 Javascript
jQuery实现简单轮播图效果
Dec 27 #jQuery
JavaScript实现瀑布流布局的3种方式
Dec 27 #Javascript
Vue实现省市区三级联动
Dec 27 #Vue.js
JavaScript实现通讯录功能
Dec 27 #Javascript
vue3.0自定义指令(drectives)知识点总结
Dec 27 #Vue.js
vue 使用 sortable 实现 el-table 拖拽排序功能
Dec 26 #Vue.js
在vue项目中封装echarts的步骤
Dec 25 #Vue.js
You might like
PHP 5.3.0 安装分析心得
2009/08/07 PHP
PHP迭代器实现斐波纳契数列的函数
2013/11/12 PHP
PHP查询大量数据内存耗尽问题的解决方法
2016/10/28 PHP
jQuery总体架构的理解分析
2011/03/07 Javascript
stream.js 一个很小、完全独立的Javascript类库
2011/10/28 Javascript
实例详解angularjs和ajax的结合使用
2015/10/22 Javascript
全面解析Bootstrap布局组件应用
2016/02/22 Javascript
Jquery zTree 树控件异步加载操作
2016/02/25 Javascript
js实现div模拟模态对话框展现URL内容
2016/05/27 Javascript
AngularJS入门教程之表格实例详解
2016/07/27 Javascript
基于angularJS的表单验证指令介绍
2016/10/21 Javascript
关于JavaScript中事件绑定的方法总结
2016/10/26 Javascript
js仿百度音乐全选操作
2017/01/13 Javascript
BootStrap栅格系统、表单样式与按钮样式源码解析
2017/01/20 Javascript
vue中如何使用ztree
2018/02/06 Javascript
详解vue-cli+es6引入es5写的js(两种方法)
2019/04/19 Javascript
JavaScript中关于base64的一些事
2019/05/06 Javascript
vue之debounce属性被移除及处理详解
2019/11/13 Javascript
js实现星星打分效果
2020/07/05 Javascript
批量获取及验证HTTP代理的Python脚本
2017/04/23 Python
Django csrf 验证问题的实现
2018/10/09 Python
使用11行Python代码盗取了室友的U盘内容
2018/10/23 Python
ubuntu 18.04 安装opencv3.4.5的教程(图解)
2019/11/04 Python
Django中提示消息messages的设置方式
2019/11/15 Python
css3进阶之less实现星空动画的示例代码
2019/09/10 HTML / CSS
欧洲最大的品牌水上运动服装和设备在线零售商:Wuituit Outlet
2018/05/05 全球购物
西班牙著名的珠宝首饰品牌:P D PAOLA
2018/09/15 全球购物
Converse匡威法国官网:美国著名帆布鞋品牌
2018/12/05 全球购物
白俄罗斯女装和针织品网上商店:Presli.by
2019/10/13 全球购物
美工的岗位职责
2013/11/14 职场文书
教育局长自荐信范文
2013/12/22 职场文书
绿化工程实施方案
2014/03/17 职场文书
房地产置业顾问工作总结
2015/10/23 职场文书
创业计划书之少年玩具店
2019/09/05 职场文书
Python turtle编写简单的球类小游戏
2022/03/31 Python
Spring Data JPA框架持久化存储数据到数据库
2022/04/28 Java/Android