js实现无限下划加载

首先新建一个html模板

<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>test</title>
</head>
<body>
    <div id="main"></div>
</body>
</html>

实现加载内容的js,这里举一个简单的例子

function load(title) {
  // div
  let div = document.createElement("div");
  div.setAttribute("class", "test")
  // h2
  let h2 = document.createElement("h2");
  h2.appendChild(document.createTextNode("标题: " + title));
  div.appendChild(h2);
  // 添加
  document.getElementById("main").appendChild(div);
}

添加一个监听器,在网页浏览快要结束时添加新内容

// 设置初始时间
let time = new Date().getTime();
// 监听器
function eventHandle(e) {
  // 这里设置一个时间,原因是每次浏览器滚动条位置变动都会出发event
  // 加载较慢时可能会出现滚动条到底了,第一次触发的内容还未加载出来
  // 这里设置每200ms可以触发一次
  let t = new Date().getTime();
  if (t - time > 200) {
    time = t;
    // 浏览器上方内容的高度
    let viewportHeight = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight || 0;
    // 页面总高度
    let pageHeight = Math.max(document.body.scrollHeight, document.body.offsetHeight) - viewportHeight;
    // 滚动条高度
    let scrollHeight = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;
    // 当页面浏览进度超过90%时使用鼠标滚轮触发
    if (scrollHeight / pageHeight > 0.9) load("awa");
  }
}
// 启用监听器 scroll是监听器名字
document.addEventListener('scroll', eventHandle);
// 删除监听器
document.removeEventListener('scroll', eventHandle);

这样的话一个简单的无限下划就完成了

最后贴一个demo

<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>test</title>
    <style>
        #main {
            height: 1200px;
        }

        .test {
            height: 200px;
        }
    </style>
</head>
<body>
    <div id="main"></div>
    <script>
        function load(title) {
            // div
            let div = document.createElement("div");
            div.setAttribute("class", "test")
            // h2
            let h2 = document.createElement("h2");
            h2.appendChild(document.createTextNode("标题: " + title));
            div.appendChild(h2);
            // 添加
            document.getElementById("main").appendChild(div);
        }
        load("awa");
        // 设置初始时间
        let time = new Date().getTime();
        // 监听器
        let count = 1;
        function eventHandle(e) {
            // 这里设置一个时间,原因是每次浏览器滚动条位置变动都会出发event
            // 加载较慢时可能会出现滚动条到底了,第一次触发的内容还未加载出来
            // 这里设置每200ms可以触发一次
            let t = new Date().getTime();
            if (t - time > 200) {
                time = t;
                // 浏览器上方内容的高度
                let viewportHeight = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight || 0;
                // 页面总高度
                let pageHeight = Math.max(document.body.scrollHeight, document.body.offsetHeight) - viewportHeight;
                // 滚动条高度
                let scrollHeight = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;
                // 当页面浏览进度超过90%时使用鼠标滚轮触发
                if (scrollHeight / pageHeight > 0.9) {
                    for (let i = 0; i < 5; i++) {
                        load("第" + count + "次自动加载");
                    }
                    count++;
                }
            }
        }
        // 启用监听器 scroll是监听器名字
        document.addEventListener('scroll', eventHandle);
        // 删除监听器
        // document.removeEventListener('scroll', eventHandle);
    </script>
</body>
</html>
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇