這期內容當中小編將會給大家帶來有關使用JavaScript怎么編寫一個滾動加載更多功能,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
vscode

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;}
h2 {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">
<h2>新聞列表(加載更多)<script>document.write(new Date().toLocaleString())</script></h2>
<ul>
</ul>
<div class="footer" >
<img 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>
<h3><a href="#" rel="external nofollow" >${item.title}</a></h3>
<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怎么編寫一個滾動加載更多功能了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。