CSS实现不规则自定义进度条效果

html-css027

CSS实现不规则自定义进度条效果,第1张

进度条效果做为网站常用模块无论是投资理财类、还是众筹类、加载提示类网站已经比较常见。另外,HTML5新增了 progress 标签,其重要程度可见一斑。

由于HTML的 progress 存在兼容性问题,本文主要讲解如何通过CSS实现一个简单的自定义进度条效果!

前端开发常用的进度条效果如下:

(环形进度条下次再讲!)

这两个算是比较有代表性的,一个的均匀的一个的不均匀的,实现起来略有不用。

以第一个为例:

这种比较简单,只需要两个 div 标签就可以了(一个标签也可以实现,后文会讲到)

原理介绍:

外层 div 用来显示进度条总长度以及背景色;内层div用来显示当前进度条进度,和当前进度条颜色。

结构如下:

样式如下:

此时效果如下:

只需要利用 js 动态控制上层 div 的宽度就可以实现最简单的自定义进度条了.

** 第二种带原点的进度条 **

此时实现原理跟第一种类似,只是背景色替换成了背景图片,图片如下:

这两个图片除了颜色不一样以外其他是一样大小的!

如果上面的能理解我想这个就不难理解了吧,不过为了显得文章完整还是简单做一个demo如下:

效果如下:

在生活中比较常见的是直线进度条,但是圆形进度条的实现相对有意思,我个人总结了两种圆形进度条的实现方式。

首先我们得了解什么是svg,它是使用 XML 来描述二维图形和绘图程序的语言。可以直接在html中使用svg标签实现。实现圆形进度条前先讲下svg里面stroke属性。

实现圆形进度条主要用到 stroke-dasharray 和 stroke-dashoffset 。

stroke-dasharray="2*50*3.14" ,代表虚线长314,空白间隔长314

stroke-dashoffset="2*50*3.14" ,代表虚线偏移是314,这样展示出来的部分就是空白间隔。

将圆的周长展开来表示就是这样:

用css实现主要通过用两个div分别画半圆,并结合 overflow:hidden 实现。

这是从100->0,如果是从0->100的话,只需要修改动画旋转角度即可。

以上就是我总结的两种画原型进度条的方法,挺有意思的吧?