首页 > 其他分享 >CSS3 实现 网页顶部进度条

CSS3 实现 网页顶部进度条

时间:2022-09-27 22:41:49浏览次数:97  
标签:CSS3 动画 网页 效果 进度条 html 页面



有朋友们问网页顶部进度条 如何应用,现在github 大部分国外网站 都在用,

这个效果可以使用现成的一些插件比如  ​​这个​​​,​​这个​​​,还有​​这个​​。



比如youtobe: 

前些时候有注意到YouTube网站放出的新特性,那就是在视频页面间切换时,页面顶部会有一道华丽丽的红色激光脉冲掠过。


以下截图内容来自 刘家勇博客。

CSS3 实现 网页顶部进度条_进度条

那不是其他什么为了炫技的东西,它是一个进度条,平时我们见了千百遍经常以转圈形式出现的进度条。当然谷歌对于进度展示的创新不止于此啦,比如用于谷歌加的下载gif也是很有新意的一个玩意儿。

CSS3 实现 网页顶部进度条_HTML5_02

但YouTube这个进度条似乎更具创新,让人觉得相当惊艳。

所以好奇的我按捺不住想要拔开它神秘面纱的心情。

大体来看用了以下技术:

  1. Ajax:首先页面内容的加载使用的是Ajax异步请求,所以页头那个激光元素可以在内容请求与接收过程中得以展示,不然的话整个页面刷新那就无法实现了;
  2. HTML5 History API: 其次我注意到页面地址也是跟着变的。前面提到整个页面是没有刷新的(一个不太靠谱的方法可以验证这点是显示网站favicon的地方没有出现
  3. CSS3 实现 网页顶部进度条_css3_03

  4. 类似这样的等待图标),但页面地址却更新了,方便你把连接放送给别人时能够打开该页面。这里用到的就是HTML5的History API,通过它可以操作浏览器地址栏的地址,书签及页面状态信息等。
  5. CSS3动画属性 :另外就是红色激光线条本身的实现上,使用了CSS3的动画或者JS写的动画,但更大的可能是两种结合。

经过一些谷歌,发现也有其他同类在讨论这个话题,并贴出了相关实现。拿来研究了下决定自己把玩一把分享给大家。

这里只是实现那个一道红光掠过的效果,不包含对Http请求各个状态的进度处理以得到页面实际的加载进度,我们将把这个动画效果写成在一个固定的时间内完成,比如3秒。

 

准备工作

开始之前需要多少了解一点CSS3关于动画相关的知识,可以通过我之前那篇​​博文​​​,也可以到​​W3School​​进行了解。

其次,需要了解诸如 CSS3的​​transition​​等不常用的属性。

最后还需要了解jQuery的​​animate API​​的使用。

 

分解实现

整个动画可以分为两个部分,一个是整体向前延伸的光线,另一个就是跑在最前面不停闪烁的头部。

向前滑动的激光

首先来看如何实现一条向前延伸的光线效果的。

其实要实现这么一个效果使用CSS3的动画属性来做是非常简单的,但为什么要使用jQuery来做呢,看完下面后答案就揭晓了。

先看纯CSS3的版本。

1.新建一个html文件然后加入一个div,用来呈现这个向前的动画。

CSS3 实现 网页顶部进度条_HTML5_04

2.然后开始给id为progress的div写动画。

考虑到简略,一些CSS属性为了能够在不同浏览器里正常工作需要写很多个版本,比如CSS3的animatiion正常情况下需要为每个不同内容的浏览器写个版本的:

CSS3 实现 网页顶部进度条_前端开发_05

但我是在Chromium里做实验,遇到这种情况就只考虑-webkit-前缀的了,在完整源码里再把兼容其他浏览器的代码补全。

设置目标元素背景色为深红色(#b91f1f),高度为2px。因为这两个属性是在动画过程中不变的,所以单独写出来。同时定义动画关键帧:开始宽度为0,结束时宽度为100%。

CSS3 实现 网页顶部进度条_前端开发_06

然后对元素应用动画,设定动画时间为3秒:

CSS3 实现 网页顶部进度条_进度条_07

现在可以保存页面看效果了。

查看效果

id="demo1" src="http://bcs.duapp.com/wayouliu/blogdemos/youtubeanimationdemo/1.html" width="100%" height="50" >

 

CSS3 实现 网页顶部进度条_前端开发_08

我们会看到一条红色线条向右飞去。但它没有贴在页面的边缘,所以还需要将body的margin去掉。所以现在的代码应该是这样的。

CSS3 实现 网页顶部进度条_进度条_09

效果是这样的:

CSS3 实现 网页顶部进度条_canvas_10

 

但问题出现了。当动画放完后线条会一直存在,不会消失。但实际上进度完成了进度条就应该从页面消失了。所以我们改为使用jQuery来实现,这样可以在动画完成后通过JavaScript将其隐藏。

CSS3 实现 网页顶部进度条_前端开发_11

更改为上面的代码后,进度条播放完后会消失。

查看效果

id="demo2" src="http://bcs.duapp.com/wayouliu/blogdemos/youtubeanimationdemo/2.html" width="100%" height="50" >

 

现在线条消失时太突兀了,我们需要让它渐渐消失掉,需要用到CSS的transation属性。

CSS3 实现 网页顶部进度条_css3_12

查看效果

id="demo3" src="http://bcs.duapp.com/wayouliu/blogdemos/youtubeanimationdemo/3.html" width="100%" height="50" >

 

光晕与闪烁效果

我们可以看到在那束激光划过时,其头部是块闪烁且周围带光晕效果的长条,所以剩下的部分就是完成这个东西了。

首先我们看闪烁如何做。

新建一个html文档,页面也是很简单就一个div用于展示动画。并且设置其样式为带阴影效果和圆角效果,圆角是为了看起来柔和一点。

CSS3 实现 网页顶部进度条_进度条_13

//DEMO4

效果:

 

然后再为其编写动画效果,这个动画效果是让它闪烁,可能通过改变其透明度来控制,然后将动画设置成无限播放模式,就出来想要的闪烁了。

CSS3 实现 网页顶部进度条_HTML5_14

//DEMO5

 

现在我们把这个效果加到原来那个线条上。在原来那个id为progress的div下加一个span元素用于呈现这个闪烁效果。

CSS3 实现 网页顶部进度条_css3_15

它必需一起处于线条的最右边,所以考虑将其位置属性设置为absolute并且将progress 那个div设为fixed。

所以最后的效果及代码大概是这样:

CSS3 实现 网页顶部进度条_css3_16

 

查看效果

id="demo6" src="http://bcs.duapp.com/wayouliu/blogdemos/youtubeanimationdemo/6.html" width="100%" height="50" >



标签:CSS3,动画,网页,效果,进度条,html,页面
From: https://blog.51cto.com/u_15809398/5717579

相关文章

  • PC 端网页特效
    一、元素偏移量offset系列(一)offset概述1、offset翻译过来就是偏移量,我们使用offset系列相关属性可以动态的得到该元素的位置(偏移)、大小等。(1)获得元素距离带有定位......
  • Scratch网页版本地部署
    目录设置我们创建一个目录Scratch,在本机上的路径为D:\Code\Scratch ClosureLibrary安装我们使用Git将这个包下载到本地,命令如下gitclonehttps://github.com/goog......
  • 爬虫基础——静态网页与动态网页
    爬虫基础——静态网页与动态网页在爬虫前应首先名确待爬取的页面是静态的,还是动态的,只有确定了页面类型,才方便后续对网页进行分析和程序编写。对于不同的网页类型,编写爬......
  • PC端网页特效-元素偏移量 offset 系列
    PC端网页特效—元素偏移量offset系列1.offset概述​offset翻译过来就是偏移量,我们使用offset系列相关属性可以动态的得到该元素的位置(偏移)、大小等。获得元素......
  • 记录黑苹果OpenCore 安装-v跑码结束显示logo、进度条、光标,但不进入系统问题
    型号:Dell Inspiron15-3559    核显:HD520OS版本: macOSCatalina10.15.6(19G2021) 问题-v模式启动,跑码结束,显示苹果logo和进度条,鼠标光标正常显示,连......
  • 02js制作百分比进度条
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge"><metaname="viewport"content......
  • 第一个网页练习
    步骤一、观察设计稿 设计稿大致分为两部分:body背景、article包含header二、创建工程,index.html+index.css+reset(样式重置)1.创建工程2.链接css  <linkrel......
  • 每个网页设计师都应该知道的 CSS 技巧
    每个网页设计师都应该知道的CSS技巧1.字体速记像往常一样,我们将字体样式编写如下字体粗细:粗体;字体样式:斜体;字体变体:小型大写;字体大小:1em;行高:1.5em;......
  • android webview展示网页空白
    1、res->xml目录下增加network_security_config.xml<?xmlversion="1.0"encoding="utf-8"?><network-security-config><base-configcleartextTrafficPermitted="tru......
  • HTML|简单的个人介绍网页
    个人介绍网页效果代码实现图片可以放在本地,也可以使用托管网站,这里我是用的托管网站。<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><me......