CSS3 使用linear-gradient制作进度条

最终效果

进度条实际效果展示

创建进度条的步骤

  1. 创建一个元素并。

    <div class='prog'></div>
    
    .prog {
        width: 300px;
        height: 30px;
    }
    
  2. background-image中使用linear-gradient属性创建一个半透明的渐变层(该层背景是为了是进度条具有视觉上的3D效果,可不加)。

    .prog {
        background-image: linear-gradient(hsla(0, 0%, 100%, 0.05) 5%, hsla(0,0%,100%,.75) 30%, hsla(0,0%,100%,0.2), hsla(0,0%,100%,0));
    }
    
  3. 继续在background-image中使用linear-gradient创建一层背景,该背景为滚动条的底色,为两种颜色的条纹,效果如下图所示(图中增加了一圈内阴影)。

    .prog {
        background-image: linear-gradient(hsla(0, 0%, 100%, 0.05) 5%, hsla(0,0%,100%,.75) 30%, hsla(0,0%,100%,0.2), hsla(0,0%,100%,0)), linear-gradient(90deg, #50ff00 50%, #eee 0);
    }
    
  4. background-size设置为200% 100%,这样进度条中完成部分和未完成部分的长度均为100%,这样便可以通过后续修改background-position来达到进度条滚动的效果。

  5. 设置过渡动画,定义keyframes修改background-position从100%到0%,使用线性速度播放动画便完成了最终的滚动条。

    .prog {
        animation:prog 6s linear infinite;
    }
    
    @keyframes prog {
        from {background-position: 100%;}
        to {background-position: 0%;}
    }
    

tips

多层background-image

使用多层background-image时先定义的背景层在上方,后定义的背景层在下方。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1、属性选择器:id选择器 # 通过id 来选择类名选择器 . 通过类名来选择属性选择器 ...
    Yuann阅读 1,658评论 0 7
  • 1、垂直对齐 如果你用CSS,则你会有困惑:我该怎么垂直对齐容器中的元素?现在,利用CSS3的Transform,...
    kiddings阅读 3,208评论 0 11
  • 故事很简单,放在许多人的身上,也显得很俗套。唯一让人感兴趣的是岛本的神秘,但也许是吸引“我”的其中的一个原因。 人...
    六只牛阅读 239评论 0 2
  • 屏幕那边的你,我不知道是男孩还是女孩。但我知道,你应该有过那或长或短的青春期,那段日子里,你叛逆,或者羡慕叛逆。追...
    京城浮世荟阅读 230评论 0 0
  • 文/小家碧玉(河南) 朝气 曾经鲜亮着一抹绿 初夏 白了羽 一季的繁华 又一次的启程 群英,撑起伞 不言停留 再来...
    小家碧玉_9512阅读 225评论 0 1