p{text-indent:2em;}前端开发whqet,csdn,王海庆,whqet,前端开发专家

几天来看一组利用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的更多相关文章

  1. Loader转换器

    一.简介 webpack本身只能处理js模块,Loader可以理解为模块和资源的转换器,它本身是一个函数,接受文件作为参数,返回转换的结果.因此,我们就能通过require来加载任何类型的模块和文件. ...

  2. 关于webpack编译scss文件

    css加载器文件通常和extract-text-webpack-plugin一块使用,我们可以在源文件src目录下写scss文件,然后通过webpack编译成css文件到输出目录public,这个目录 ...

  3. webpack入门和实战(二):全面理解和运用loader和plugins

    您的阅读目录: 一.理解webpack加载器loader 二.理解less-loader加载器的使用 三.理解babel-loader加载器的使用 四.webpack命令行常见使用的操作 五.用web ...

  4. webpack打包处理html、css、js、img、scss文件

    webpack --help 查看webpack命令启动服务 npm run dev (先配置好服务)进入对应文件夹并初始化npmcd demo npm init 安装webpack npm inst ...

  5. 在项目中使用 SCSS

    背景概述 1. CSS预处理器 css预处理器定义了一种新的编程语言,编译后成正常的CSS文件.为CSS增加一些编程的特性,无需考虑浏览器的兼容问题,让CSS更加简洁,适应性更强,可读性更佳,更易于代 ...

  6. Vue笔记:在项目中使用 SCSS

    背景概述 1. CSS预处理器 css预处理器定义了一种新的编程语言,编译后成正常的CSS文件.为CSS增加一些编程的特性,无需考虑浏览器的兼容问题,让CSS更加简洁,适应性更强,可读性更佳,更易于代 ...

  7. webpack进阶--loader

    webpack的核心就是它的配置文件,只要配置好配置文件webpack就可以用得利索-- 而配置文件主要就是7个部分entry.output.plugins.resolve.devserver(web ...

  8. webpack3.0之loader配置及编写(一)

    loader 用于对模块的源代码进行转换.loader 可以使你在 import 或"加载"模块时预处理文件.loader 可以将文件从不同的语言(如 TypeScript)转换为 ...

  9. vue入门----------scss的配置使用

    1.安装相应的依赖 cnpm install sass-loader --save-dev cnpm install node-sass --save-dev 2.在build文件下的webpack. ...

随机推荐

  1. Weak Event Patterns

    https://msdn.microsoft.com/en-US/library/aa970850(v=vs.100).aspx In applications, it is possible tha ...

  2. [swustoj 404] 最小代价树

    最小代价树(0404) 问题描述 以下方法称为最小代价的字母树:给定一正整数序列,例如:4,1,2,3,在不改变数的位置的条件下把它们相加,并且用括号来标记每一次加法所得到的和. 例如:((4+1)+ ...

  3. 浅谈HTTP中Get、Post、Put与Delete的区别

    Http定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETE.URL全称是资源描述符,我们可以这样认为:一个URL地址,它用于描述一个网络上的资源,而HTTP ...

  4. ↗☻【PHP与MySQL程序设计 #BOOK#】第3章 PHP基础

    <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="utf-8& ...

  5. dubbo + zookeeper 环境搭建

    一.zookeeper windows部署 1.下载安装 到官网下载解压版后解压至F:\server\zookeeper-3.4.8,剩下为文件配置工作: 2.本地伪集群 1) 在F:\server\ ...

  6. 正则化(Regularization)

    正则化(Regularization)是机器学习中抑制过拟合问题的常用算法,常用的正则化方法是在损失函数(Cost Function)中添加一个系数的\(l1 - norm\)或\(l2 - norm ...

  7. 常用的js代码

    1.输入框输入提示代码 <input name="keyword" type="text" value="请输入关键字" onFocu ...

  8. postInvalidate、removeAllViewsInLayout、refreshDrawableState用法

    postInvalidate.invalidate:会调用控件的onDraw()重绘控件 refreshDrawableState:当控件在使用一个对控件状态敏感的Drawable对象时使用,如一个B ...

  9. HDU 5288 OO’s Sequence

    题意:给一个序列,函数f(l, r)表示在[l, r]区间内有多少数字不是其他数字的倍数,求所有区间的f(l, r)之和. 解法:第一次打多校……心里还有点小激动……然而一道签到题做了俩点……呜呜呜… ...

  10. 9Patch在Android平台的应用