原生js实现顶部进度条效果

js 滚动 html 编程技术
发布日期 2023-07-15 更新日期 2023-07-15 阅读次数 67 文章字数 1.1k

页面滚动时,计算当前滚动的百分比。

然后设置顶部滚动条宽度的百分比

位置是fixed

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <style>
        *{margin:0;padding:0;}
        .box{height:3000px;width:100%;background:#ccc;}
        .progress{position:fixed;top:0;height:5px;background-image: linear-gradient(to right, #339933,#FF6666);}
    </style>
    <title>原生js页面滚动顶部显示滚动总进度条效果</title>
</head>
<body>
    <div class="progress"></div>
    <div>
        <div class="box">1</div>
    </div>
</body>
<script>
    (function(){
        let pageHeight = document.body.scrollHeight || document.documentElement.scrollHeight; // 页面总高度
        let windowHeight = document.documentElement.clientHeight || document.body.clientHeight; // 浏览器视口高度
        let scrollAvail = pageHeight - windowHeight; // 可滚动的高度
        console.log('可滚动的高度:', scrollAvail);
        window.onscroll = function () {
            let scrollTop = document.documentElement.scrollTop || document.body.scrollTop;  // 获取滚动条的高度
            console.log('滚动条的高度:', scrollTop);
            document.querySelector('.progress').style.width = (scrollTop/scrollAvail)*100 + '%';    // 计算占比
        };
    }());
</script>
</html>

文章作者: 朱丰华

文章链接: https://smart.52dixiaowo.com/blog/post-444.html

版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。

js 滚动 html

发表评论

相关推荐
朱丰华   |   1年前   |   页面 · 监听

iframe子父页面信息传递与监听

429    评论    点赞
朱丰华   |   1年前   |   请求 · 一个

ab测压命令,apache测压工具

196    评论    点赞
朱丰华   |   1年前   |   < · iframe

让iframe嵌入的视频自适应 (100%宽度)?

137    评论    点赞
朱丰华   |   1年前   |   js · 重复

js如何避免重复监听addEventListener事件?

147    评论    点赞
朱丰华   |   1年前   |   html · <

html浏览器当前tab标签切换时触发监听

117    评论    点赞
朱丰华   |   1年前   |   javascript · 滚动 · html

Javascript 显示当前滚动条滚动的百分比

84    评论    点赞
朱丰华   |   1年前   |   html · id · <

html同一个页面有两个相同id ,如何用id选择器选中

123    评论    点赞
朱丰华   |   1年前   |   php

windows下编写、编译php扩展

177    评论    点赞
朱丰华   |   1年前   |   html

npm clean-mark,抓取网页文章内容,转换成markdown、html、txt

200    评论    点赞
朱丰华   |   1年前   |   js · export · import

js es6 export,import,export default的用法和区别

138    评论    点赞
朱丰华   |   1年前   |   js · vue · 监听

js vue监听,深度监听

123    评论    点赞
朱丰华   |   1年前   |   vue · model

vue语法v-model原理与实现

131    评论    点赞
朱丰华   |   1年前   |   html · npm · audit

npm报错、原因:run `npm audit fix` to fix them, or `npm audit` for details html

79    评论    点赞
朱丰华   |   1年前   |   javascript · js · obfuscator · 混淆

javascript-obfuscator混淆js文件

60    评论    点赞
朱丰华   |   1年前   |   js · vue · npm · 安装

npm快速上手

110    评论    点赞
朱丰华   |   1年前   |   js · 模块 · nodejs

nodejs引入自定义模块

57    评论    点赞
朱丰华   |   1年前   |   nvm · git · 安装

entos7安装、使用nvm

84    评论    点赞
朱丰华   |   1年前   |   python · linux · www

linux给www用户【非root】安装python3

212    评论    点赞
朱丰华   |   1年前   |   html

html input datetime-local设置初始值

119    评论    点赞
朱丰华   |   1年前   |   js · php · 字符 · 字符串

php json_encode对字符串转义用法

144    评论    点赞
{{item.author_name}}   |   {{new Date(item.date*1000).log()}}   |   {{it}} ·

{{item.title}}

{{item.uv}}    评论    点赞