此代码片段向网页添加阅读进度条。 该栏直观地表示用户在主要内容区域中的滚动进度。让我们分解它的工作原理并改进它。
代码尝试根据相对于 main
元素总高度的滚动位置来计算进度。 然而,它有几个问题:
-
代码不完整:提供的代码已被截断。 它缺少实际创建和更新视觉进度条的关键部分。
div
已创建,但不存在样式或进度更新逻辑。 -
高度计算不正确:根据页面结构,
totalHeight
的计算可能不准确。 使用outerHeight(true)
包含边距,这可能是不需要的。 它也没有考虑到在初始计算后可能改变高度的动态内容。 - 缺乏进度更新:没有代码可以在用户滚动时更新进度条。 计算仅在文档准备好时进行一次。
-
页脚高度问题:如果页脚固定或与主要内容重叠,减去
footerHeight
可能会导致进度计算不正确。
这是解决这些问题的改进版本:
$(document).ready(function() { if ($('body').hasClass('single')) { const progressBar = $('<div id="reading-progress"></div>'); $('header').after(progressBar); let totalHeight = $('main').height(); // Use height() for more accurate calculation let windowHeight = $(window).height(); $(window).on('scroll', function() { let scrollTop = $(this).scrollTop(); let progress = (scrollTop / (totalHeight - windowHeight)) * 100; // Adjust for window height progress = Math.min(progress, 100); // Cap progress at 100% $('#reading-progress').css('width', progress + '%'); }); } });
改进后的代码:
-
创建进度条:它会动态创建一个 ID 为
div
的reading-progress
作为进度条。 -
使用
height()
: 它使用height()
而不是outerHeight(true)
来更准确地计算主要内容高度。 -
处理滚动事件:它使用
$(window).on('scroll', ...)
在用户滚动时不断更新进度条的宽度。 - 准确计算进度:进度计算考虑了可见窗口的高度,防止进度条超过 100%。
-
添加 CSS(需要): 您需要添加 CSS 来设置
#reading-progress
div 的样式。 例如:
#reading-progress { height: 5px; /* Adjust height as needed */ background-color: #007bff; /* Adjust color as needed */ position: fixed; top: 0; left: 0; width: 0; /* Initially 0% width */ z-index: 1000; /* Ensure it's on top */ }
请记住在您的项目中包含 jQuery 才能使此代码正常工作。 修改后的代码提供了更强大、更准确的阅读进度条。 进一步的改进可能包括处理边缘情况和添加更复杂的样式。
以上是阅读进度条的详细内容。更多信息请关注PHP中文网其他相关文章!

Goofonts是由开发人员和设计师丈夫签名的附带项目,它们都是版式的忠实拥护者。我们一直在标记Google

学习如何构建GraphQL API可能具有挑战性。但是您可以学习如何在10分钟内使用GraphQL API!碰巧的是,我得到了完美的

这里是Yuanchuan的一些合法CSS骗局。有此CSS属性偏移路径。曾几何时,它被称为Motion-Path,然后被更名。我


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

DVWA
Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中

SublimeText3汉化版
中文版,非常好用

mPDF
mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

EditPlus 中文破解版
体积小,语法高亮,不支持代码提示功能