阅读进度条
此代码片段向网页添加阅读进度条。 该栏直观地表示用户在主要内容区域中的滚动进度。让我们分解它的工作原理并改进它。
代码尝试根据相对于 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中文网其他相关文章!
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

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

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

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章
Windows 11 KB5054979中的新功能以及如何解决更新问题
4 周前
By DDD
如何修复KB5055523无法在Windows 11中安装?
3 周前
By DDD
Inzoi:如何申请学校和大学
1 个月前
By DDD
如何修复KB5055518无法在Windows 10中安装?
3 周前
By DDD
在哪里可以找到Atomfall中的站点办公室钥匙
1 个月前
By DDD

热工具

记事本++7.3.1
好用且免费的代码编辑器

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

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

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