css3 linear-gradient实现页面加载进度条效果
最终效果图:
html结构:
<div>
<p class="p1">
<span></span>
</p>
<p class="p2">
<span></span>
</p>
<p class="p3">
<span></span>
</p>
<p class="p4">
<span></span>
</p>
</div>
css样式:
div{
position: relative;
width: 253px;
height: 9px;
margin: 100px auto;
overflow: hidden;
}
p{
position: absolute;
top: 0px;
width: 100%;
height: 9px;
overflow: hidden;
}
p span{
position: absolute;
left: -11px;
top:0px;
width: 280px;
height: 100%;
background: linear-gradient(45deg,#1a6adf 25%,#578cdf 25%,#578cdf 50%,#1a6adf 50%,#1a6adf 75%,#578cdf 75%,#578cdf 100%);
background-size: 28px 28px;
}
.p1{
left: 0px;
animation: m1 8s linear infinite;
}
.p2{
left: -253px;
animation: m2 8s linear infinite;
}
.p3{
left: -506px;
animation: m3 8s linear infinite;
}
.p4{
left: -759px;
animation: m4 8s linear infinite;
}
p.p2 span,p.p4 span{
background-size: 28px 28px;
}
@keyframes m1{
0%{
left: 0px;
z-index: 2;
}
25%{
left: 253px;
z-index: 1;
}
50%{
left: -506px;
z-index: 1;
}
75%{
left: -253px;
z-index: 2;
}
100%{
left: 0px;
z-index: 2;
}
}
@keyframes m2{
0%{
left: -253px;
z-index: 2;
}
25%{
left: 0px;
z-index: 2;
}
50%{
left: 253px;
z-index: 1;
}
75%{
left: -506px;
z-index: 1;
}
100%{
left: -253px;
z-index: 1;
}
}
@keyframes m3{
0%{
left: -506px;
z-index: 1;
}
25%{
left: -253px;
z-index: 2;
}
50%{
left: 0px;
z-index: 2;
}
75%{
left: 253px;
z-index: 1;
}
100%{
left: -506px;
z-index: 1;
}
}
@keyframes m4{
0%{
left: -759px;
z-index: 1;
}
25%{
left: -506px;
z-index: 1;
}
50%{
left: -253px;
z-index: 2;
}
75%{
left: 0px;
z-index: 2;
}
100%{
left: 253px;
z-index: 2;
}
}
最初的时候实现页面加载进度条是公司的设计给的gif图,后来发现一个问题就是当我的页面样式和html都加载完成的时候图片没有加载出来,虽然只是很短的时间,但是不例如用户体验,这个也仅仅是页面初始化加载的时候会出现图片加载的问题,因此我想用css来实现那么就不会出现资源加载不统一的问题。那么我们来看一下他的实现原理:
首先我们给一个div来定义整个容器的大小,分别定义四个p来实现四个不同的条纹,在后期我们还要对每一段条纹进行截取所以每个p元素里边再嵌套一个span。我们用四个条纹实现看似一个条纹段在旋转的效果其实就是让条纹从左像右移动,既然是移动那么四个条纹的前后一定是衔接的。
这个是第一个条纹没有做限制的效果图,前后末端是没有规律可寻的,那么怎么让两条相同的条纹衔接起来看起来像是一条条纹呢,通过p和span我们对每条条纹进行截取:前端的截取到第一条深蓝纹路左上角为基准深蓝的1/2,末端截取到最后一条深蓝以右下角为基准深蓝宽度的1/2。截取后的效果如图,这样我把两个相同的条纹放在一个能够清楚的看到前后的衔接。这样四个条纹通过animation进行移动,思路类似于banner图轮转。当然菜菜一枚,有更好的方法多多交流~
css3 linear-gradient实现页面加载进度条效果的更多相关文章
- js页面加载进度条
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- vue使用nprogress页面加载进度条
vue使用nprogress页面加载进度条 NProgress是页面跳转是出现在浏览器顶部的进度条 官网:http://ricostacruz.com/nprogress/ github:https: ...
- ajax页面加载进度条插件
下面两个都是youtube视频的加载进度条效果的ajax插件 一.官网:http://ricostacruz.com/nprogress/官网 github:https://github.com/rs ...
- jQuery模拟页面加载进度条
因为我们无法通过任何方法获取整个页面的大小和当前加载了多少,所以想制作一个加载进度条的唯一办法就是模拟.那要怎么模拟呢? 我们知道,页面是从上往下执行的,也就是说我们可以大致估算出在页面的某个位置加载 ...
- js页面加载进度条(这个就比较正式了,改改时间就完事儿)
不废话,直接上代码 思路不难,就是一个animate方法配合随机数 duration内个三秒钟,是自定义的,可以改成页面加载时间,这样就完美了 <!doctype html> <ht ...
- 插件二之页面加载进度条pace.js
关于pace.js pace.js包含14样式,每种样式可以自定义颜色,官方下载中提供了几种颜色的主题,使用方式也很简单,引入pace的js文件跟所需样式文件即可 <link rel=" ...
- 自己写的页面加载进度条jquery插件
(function ($) { var progressId = "progress" + Math.round(Math.random() * 100) var progress ...
- element admin中使用nprogress实现页面加载进度条
主要是知道是nprogress这个组件实现的就可以了,组件的使用方法可参考:https://blog.csdn.net/ltr15036900300/article/details/47321217 ...
- 【原生JS插件】LoadingBar页面顶部加载进度条
先展示一下已经实现的效果: 预览地址:http://dtdxrk.github.io/js-plug/LoadingBar/index.html 看到手机上的浏览器内置了页面的加载进度条,想用在pc上 ...
随机推荐
- Android 通用流行框架
原文出处: http://android.jobbole.com/83028/ 1. 缓存 名称 描述 DiskLruCache Java实现基于LRU的磁盘缓存 2.图片加载 名称 描述 Andro ...
- iOS之开发小技巧
1.xcode如何添加快捷代码 xcode添加快捷代码 属性 2.cocoapods安装 cocoapods安装 3.iOS真机调试 真机调试 4.命令行自动打包 xcrun -sdk iphoneo ...
- Swift - 键盘弹起,遮挡输入框
extension LoginViewController:UITextFieldDelegate { func textFieldShouldReturn(textField: UITextFiel ...
- Lintcode 75.寻找峰值
--------------------------------------- 按照给定的峰值定义,峰值的左半部分一定是递增的,所以只要找到不递增的即可. AC代码: class Solution { ...
- Python爬虫Scrapy框架入门(3)
往往需要爬取的网页是呈一个树状结构.比如,需要先爬取一个目录,然后再在目录中选择具体的爬取目标.而目录和具体目标之间,网页结构不同,使得我们不能使用相同的爬取策略. 从之前的经验来看,我们对scrap ...
- 剑指Offer-【面试题04:替换空格】
package com.cxz.question4; /* * 请实现一个函数,把字符串中的每个空格替换成"%20",例如"We are happy.",则输出 ...
- Windows平台下和跨平台的相关公共库
以下主要包含windows下公共库以及跨平台公共库: 1. google base库:google下chromium项目的跨平台公共库: 2. vc_common_src:即HP_SOCKET项目中的 ...
- 数据库连接池c3p0学习
这里只记录c3p0的数据源,不会涉及到其它方面和别的数据库连接池的对比 配置文件主要的实现方式有三种: 1.手写代码去加载一个配置文件 创建一个config.properties文件如下: drive ...
- 百度UEditor在线编辑器的配置和图片上传
前言 最近在项目中使用了百度UEditor富文本编辑器,配置UEditor过程中遇到了几个问题,在此记录一下解决方案和使用方法,避免以后使用UEditor出现类似的错误. 基本配置 一.下载UEdit ...
- 学习微信小程序之css6