SCSS loader effect
几天来看一组利用SCSS实现的loader effect(载入效果)。鼓舞大家自行动手实现,当然也能够到CodePen在线研究。效果例如以下所看到的。

制作这个案例前,须要准备这些。
1.掌握scss的使用。当然不用也能够,使用scss会比較高效。
2.掌握利用css3的box-shadow、border、border-radius的实现画图。
3.掌握css3的动画方法。
4.一些耐心、一些创意(创意能够让你更好)
5.学会解析案例。先看静态图。
好的言归正传,我们来一步步的实现。
html部分例如以下,我们这里把全部的loader放到一个容器里面去,然后给每一个loader两个类,一个类loader作统一设置,还有一个类作个性化设置。
<div id='loaders'>
<div class='loader ball'></div>
<div class='loader spin'></div>
<div class='loader single'></div>
<div class='loader double'></div>
<div class='loader triple'></div>
<div class='loader dots'></div>
</div>
接下来就是css了。我们这里使用scss来简化css的书写。
/*
* CSS重置。这里使用CSSReset,篇幅限制不再列出。另外使用prefix-free所以能够不考虑浏览器前缀
* */
*, *:before, *:after { box-sizing: border-box; } /*
* loader颜色取随机色
* */
$color: hsl(random(360),75%,50%); $speed: 500ms; /*
* 总体设置
* 网页背景色、loaders居中显示
* loader的宽、高、圆角、动画
* */
body { background: #111; }
#loaders {
position: fixed;
top: 0; left: 0; right: 0; bottom: 0;
width: 100vw; height: 50px;
margin: auto;
display: flex;
flex-flow: row nowrap;
justify-content: space-around;
.loader {
position: relative;
width: 50px; height: 50px;
border-radius: 100%;
border-style: solid;
animation: loader $speed linear infinite;
/*
* 转动眼睛的设计,利用box-shadow的inset方法
* */
&.ball { box-shadow: inset 5px 5px 0 10px $color; }
/*
* 转环的设计,box-shadow配合border-width
* */
&.spin {
border-width: 1px 1px 2px;
border-color: $color;
box-shadow: 0 1px $color;
}
/*
* 单线的设计,border-width、border transparent
* */
&.single {
border-width: 1px;
border-color: $color transparent transparent;
}
/*
* 双线的设计。border-width、border transparent
* */
&.double {
border-width: 1px;
border-color: $color transparent;
}
/*
* 三线的设计,border-width、border transparent
* */
&.triple {
border-width: 1px;
border-color: $color;
border-top-color: transparent;
}
/*
* 环点的设计。box-shadow和before、after伪对象
* */
&.dots {
animation-timing-function: steps(8);
&:before,
&:after {
content: '';
position: absolute;
width: 10px; height: 10px;
margin: auto;
border-radius: 100%;
background: $color;
}
&:before {
top: 0; left: 0; right: 0;
box-shadow: 20px 20px rgba($color,.8), 14px 6px rgba($color,.9), 14px 34px rgba($color,.7);
}
&:after {
left: 0; right: 0; bottom: 0;
background: rgba($color,.6);
box-shadow: -20px -20px rgba($color,.4), -14px -6px rgba($color,.5), -14px -34px rgba($color,.3);
}
}
}
}
/*
* 旋转动画
* */
@keyframes loader {
to { transform: rotate(360deg); } }
}
-------------只是瘾。再加一个--------------------
<div id='loaders'>
<div class='loader doubleCircle'></div>
</div>
$colorr: hsl(180+random(180),85%,50%);
@keyframes loaderr { from { transform: rotate(1800deg); } }
&.doubleCircle {
border-width:2px;
border-color:$color transparent;
&:before {
content:"";
position: absolute;
width:56px;
height:56px;
top:-5px;
left:-5px;
border-radius:100%;
border-style:solid;
border-width:3px;
border-color:transparent $colorr;
animation: loaderr $speed*3 linear infinite;
}
}
前端开发whqet。关注web前端开发,分享相关资源,欢迎点赞,欢迎拍砖。
---------------------------------------------------------------------------------------------------------
SCSS loader effect的更多相关文章
- Loader转换器
一.简介 webpack本身只能处理js模块,Loader可以理解为模块和资源的转换器,它本身是一个函数,接受文件作为参数,返回转换的结果.因此,我们就能通过require来加载任何类型的模块和文件. ...
- 关于webpack编译scss文件
css加载器文件通常和extract-text-webpack-plugin一块使用,我们可以在源文件src目录下写scss文件,然后通过webpack编译成css文件到输出目录public,这个目录 ...
- webpack入门和实战(二):全面理解和运用loader和plugins
您的阅读目录: 一.理解webpack加载器loader 二.理解less-loader加载器的使用 三.理解babel-loader加载器的使用 四.webpack命令行常见使用的操作 五.用web ...
- webpack打包处理html、css、js、img、scss文件
webpack --help 查看webpack命令启动服务 npm run dev (先配置好服务)进入对应文件夹并初始化npmcd demo npm init 安装webpack npm inst ...
- 在项目中使用 SCSS
背景概述 1. CSS预处理器 css预处理器定义了一种新的编程语言,编译后成正常的CSS文件.为CSS增加一些编程的特性,无需考虑浏览器的兼容问题,让CSS更加简洁,适应性更强,可读性更佳,更易于代 ...
- Vue笔记:在项目中使用 SCSS
背景概述 1. CSS预处理器 css预处理器定义了一种新的编程语言,编译后成正常的CSS文件.为CSS增加一些编程的特性,无需考虑浏览器的兼容问题,让CSS更加简洁,适应性更强,可读性更佳,更易于代 ...
- webpack进阶--loader
webpack的核心就是它的配置文件,只要配置好配置文件webpack就可以用得利索-- 而配置文件主要就是7个部分entry.output.plugins.resolve.devserver(web ...
- webpack3.0之loader配置及编写(一)
loader 用于对模块的源代码进行转换.loader 可以使你在 import 或"加载"模块时预处理文件.loader 可以将文件从不同的语言(如 TypeScript)转换为 ...
- vue入门----------scss的配置使用
1.安装相应的依赖 cnpm install sass-loader --save-dev cnpm install node-sass --save-dev 2.在build文件下的webpack. ...
随机推荐
- 使用EventLog类写Windows事件日志
在程序中经常需要将指定的信息(包括异常信息和正常处理信息)写到日志中.在C#3.0中可以使用EventLog类将各种信息直接写入Windows日志.EventLog类在System.Diagnosti ...
- hdu4638Group
http://acm.hdu.edu.cn/showproblem.php?pid=4638 求某一区间所包含的连续的段 对于乱序的数 到了i这个数所包含的段数 首先把这个数看作单独的段 再看一下前面 ...
- UVa 10900 (连续概率、递推) So you want to be a 2n-aire?
题意: 初始奖金为1块钱,有n个问题,连续回答对i个问题后,奖金变为2i元. 回答对每道题的概率在t~1之间均匀分布. 听到问题后有两个选择: 放弃回答,拿走已得到的奖金 回答问题: 如果回答正确,奖 ...
- [swustoj 183] 种树
种树(0183) 问题描述 Aconly有一块矩形的地,因为这块地里有很多石头,耕作很不方便,所以他打算在这块地上种一些果树.这块地用一个只含‘#’和‘*’的N*M的矩阵来表示,‘#’表示泥土,‘*’ ...
- String的intern方法的用处
今天第一次翻看Effective java,在其第一个item中讲静态工厂方法的有点的时候说到“它们每次被调用 的时候,不要非得创建一个新的对象”并在结尾处提到---"String.inte ...
- UVA 1324 The Largest Clique 最大团(强连通分量,变形)
题意:给一个有向图,要求找出一些点,使得这些点中的任意点对,要么可以互通,要么单向可达. 思路:最低只要求单向可达即可,即a->b都可以算进去. 强连通分量内的点肯定是满足要求的,可以全选,但是 ...
- angularjs filter 详解
系统的学习了一下angularjs,发现angularjs的有些思想根php的模块smarty很像,例如数据绑定,filter.如果对smarty比较熟悉的话,学习angularjs会比较容易一点.这 ...
- MySQL查询大小写是否敏感问题分析
mysql数据库在做查询时候,有时候是英文字母大小写敏感的,有时候又不是的,主要是由mysql的字符校验规则的设置决定的,通常默认是不支持的大小写字母敏感的. 1. 什么是字符集和校验规则? 字符集 ...
- android中常用的弹出提示框
转自:http://blog.csdn.net/centralperk/article/details/7493731 我们在平时做开发的时候,免不了会用到各种各样的对话框,相信有过其他平台开发经验的 ...
- [转]ubuntu zip 文件乱码解决 压缩乱码
ubuntu zip 文件乱码解决 压缩乱码 1.1 通过unzip行命令解压,指定字符集 unzip -O CP936 xxx.zip (用GBK, GB18030也可以) 有趣的是unzip的ma ...