当前位置:首页 > 科技  > 软件

仅用 CSS 实现网页阅读进度条

来源: 责编: 时间:2023-11-30 17:31:29 357观看
导读为了构建一个阅读进度条,即显示用户向下滚动时阅读文章的进度,很难不考虑 JavaScript。但是,事实证明,您也可以使用纯 CSS 构建阅读进度条。从本质上讲,一个名为 animation-timeline[1] 的新实验性 CSS 属性可以让你指定用

为了构建一个阅读进度条,即显示用户向下滚动时阅读文章的进度,很难不考虑 JavaScript。但是,事实证明,您也可以使用纯 CSS 构建阅读进度条。Myl28资讯网——每日最新资讯28at.com

从本质上讲,一个名为 animation-timeline[1] 的新实验性 CSS 属性可以让你指定用于控制 CSS 动画进度的时间轴。我们将用它来创建阅读进度条。Myl28资讯网——每日最新资讯28at.com

首先,我们需要定义一个用作进度条的 div 元素。我们将使用一个固定在视口顶部的容器来包装这个 div 。这将确保用户向下滚动页面时进度条始终可见。Myl28资讯网——每日最新资讯28at.com

<div class="progress-bar-container">    <div class="progress-bar"></div></div><div class="content">    <!-- content goes here --></div>

接下来,我们将定义进度条的样式。我们将设置 progress-bar-container 固定在视口顶部并调整其背景颜色,该颜色始终对用户可见。我们还将 progress-bar 设置为 100% 宽度。Myl28资讯网——每日最新资讯28at.com

.progress-bar-container {    position: fixed;    top: 0px;    width: 100%;    background: #6c2fa2;    z-index: 999;}

现在,为了使进度条动画化,我们将为 progress-bar 使用不同的背景颜色,并将其高度设置为 7px 。我们还将 animation-name 设置为 width ,这实际上将进度条的宽度从 0 动画到 100%。Myl28资讯网——每日最新资讯28at.com

最后,我们将 animation-timeline 设置为 scroll(y) ,将动画时间轴绑定到视口的垂直滚动位置。这将确保当用户向下滚动页面时进度条具有动画效果。Myl28资讯网——每日最新资讯28at.com

.progress-bar {    height: 7px;    background: #e131ff;    animation-name: width;    /* animation timeline is tied to vertical scroll position */    animation-timeline: scroll(y);}@keyframes width {    from { width: 0 }    to   { width: 100% }}

就是这样!您可以在下面看到它的实际效果。Myl28资讯网——每日最新资讯28at.com

图片图片Myl28资讯网——每日最新资讯28at.com

由于 animation-timeline 属性仍处于实验阶段,因此并非所有浏览器(准确地说是 Firefox 和 Safari)都支持它。Myl28资讯网——每日最新资讯28at.com

您可以检查浏览器的兼容性[2]并据此使用。Myl28资讯网——每日最新资讯28at.com

图片图片Myl28资讯网——每日最新资讯28at.com

参考资料

[1]animation-timeline: https://developer.mozilla.org/en-US/docs/Web/CSS/animation-timelineMyl28资讯网——每日最新资讯28at.com

[2]浏览器的兼容性: https://developer.mozilla.org/en-US/docs/Web/CSS/animation-timeline#browser_compatibilityMyl28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-35579-0.html仅用 CSS 实现网页阅读进度条

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: 探秘Rust生态:核心库和框架解析

下一篇: 在Rust中处理命令行参数和环境变量

标签:
  • 热门焦点
  • 容量越大越不坏?24万块硬盘故障率报告公布 这些产品零故障

    8月5日消息,云存储服务商Backblaze发布了最新的硬盘故障率报告,年故障率有所上升。Backblaze发布的硬盘季度统计数据,其中包括故障率等重要方面。这些结
  • 一年经验在二线城市面试后端的经验分享

    忠告这篇文章只适合2年内工作经验、甚至没有工作经验的朋友阅读。如果你是2年以上工作经验,请果断划走,对你没啥帮助~主人公这篇文章内容来自 「升职加薪」星球星友 的投稿,坐
  • 如何使用JavaScript创建一只图像放大镜?

    译者 | 布加迪审校 | 重楼如果您曾经浏览过购物网站,可能遇到过图像放大功能。它可以让您放大图像的特定区域,以便浏览。结合这个小小的重要功能可以大大改善您网站的用户体验
  • 每天一道面试题-CPU伪共享

    前言:了不起:又到了每天一到面试题的时候了!学弟,最近学习的怎么样啊 了不起学弟:最近学习的还不错,每天都在学习,每天都在进步! 了不起:那你最近学习的什么呢? 了不起学弟:最近在学习C
  • ESG的面子与里子

    来源 | 光子星球撰文 | 吴坤谚编辑 | 吴先之三伏大幕拉起,各地高温预警不绝,但处于厄尔尼诺大&ldquo;烤&rdquo;之下的除了众生,还有各大企业发布的ESG报告。ESG是&ldquo;环境保
  • iQOO 11S或7月上市:搭载“鸡血版”骁龙8Gen2 史上最强5G Soc

    去年底,iQOO推出了“电竞旗舰”iQOO 11系列,作为一款性能强机,iQOO 11不仅全球首发2K 144Hz E6全感屏,搭载了第二代骁龙8平台及144Hz电竞屏,同时在快充
  • Android 14发布:首批适配机型公布

    5月11日消息,谷歌在今天凌晨举行了I/O大会,本次发布会谷歌带来了自家的AI语言模型PaLM 2、谷歌Pixel Fold折叠屏、谷歌Pixel 7a手机,同时发布了Androi
  • 微软发布Windows 11新版 引入全新任务栏状态

    近日,微软发布了Windows 11新版,而Build 22563更新主要引入了几周前曝光的平板模式任务栏等,系统更流畅了。更新中,Windows 11加入了专门针对平板优化的任务栏
  • “买真退假” 这种“羊毛”不能薅

    □ 法治日报 记者 王春   □ 本报通讯员 胡佳丽  2020年初,还在上大学的小东加入了一个大学生兼职QQ群。群主&ldquo;七王&rdquo;在群里介绍一些刷单赚
Top