内容简介:一个用于过渡的加载组件,效果图:如上图分为三个部分:上板、下板、中部; 中部又分为上半沙漏和下半沙漏, 我以上半沙漏为例:主要有4个动画:
一个用于过渡的加载组件,效果图:
技术栈
vue css,html
实现思路
1.沙漏主体设计
<template> <div class="hour-container" > <div class="upper-tap"></div> <div class="middle-tap"> <div class="upper-half-container"> <div class="upper-half-content"> <div class="upper-sand" > <div class="sand-reduce"></div> </div> </div> </div> <div class="lower-half-container"> <div class="lower-half-content"> <div class="lower-sand"> <div class="sand-add"></div> </div> </div> </div> </div> <div class="sand-falling"> <div class="sand-null"></div> </div> <div class="bottom-tap"></div> </div> </template> 复制代码
如上图分为三个部分:上板、下板、中部; 中部又分为上半沙漏和下半沙漏, 我以上半沙漏为例:
<div class="upper-half-container"> <div class="upper-half-content"> <div class="upper-sand" > <div class="sand-reduce"></div> </div> </div> </div> 复制代码
.upper-half-container{ /*上下沙漏各占一半,overflow: hidden*/ width: 100%; height: 50%; overflow: hidden; position: relative; } .upper-half-content{ /*通过border-radius,width,height形成椭圆,加上border*/ position: absolute; border: 3px solid rgb(248, 248, 250); border-radius: 50%; height: 105px; width: 50px; top: -53px; left: 2px; box-shadow: 2px 1px 3px 0px #aaa; } .upper-sand{ /*里面的沙子,overflow: hidden*/ width: 100%; height: 100%; background-color: #409EFF; position: absolute; border-radius: 50%; top: 0px; overflow: hidden; } .sand-reduce{ /*通过动画控制height,来体现沙子减少*/ height: 60%; width: 100%; background-color: #fff; animation: sand-reduce 4s linear infinite; } @keyframes sand-reduce{ /*动画*/ 0%{ height: 65%; } 25%{ height: 78%; } 40%{ height: 89%; } 62.5%{ height: 100%; } 80%{ height: 100%; } 100%{ height: 100%; } } 复制代码
2.动画效果
主要有4个动画: 上沙漏减少
、 下沙漏增加
、 下落的沙子
、 沙漏的旋转
原理和上面的 上沙漏
基本相同
<div class='parent'> <div class='child'></div> </div> 复制代码
沙子的增加或减少: 通过动画控制子元素的高度体现增加和减少
比较关键的是: 控制4个动画的衔接
我定了一个动画的周期为 4s
:
-
上沙漏减少
在0s~2.5s
减少,2.5~4s
不变 -
下沙漏增加
在0s~0.5s
不变,0.5~3s
增加,3s~4s
不变 -
下落的沙子
在0s~0.5s
增加,0.5~2.5s
不变,2.5s~3s
减少,3s~4s
不变 -
沙漏的旋转
在0s~3s
不变,3~4s
旋转
说明
该组件基于 vue
, 收录在我的 jk -ui
库的 Loading模块
下, 演示文档
你也可以通过 npm run --save jk-ui
<j-hour></j-hour>
使用
具体源码
觉得有用的话,欢迎 Star
, 感谢:pray:
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- React 组件模式-有状态组件 x 无状态组件、容器组件 x 展示组件、高阶组件 x 渲染回调(函数作为子组件)
- Serverless 组件开发尝试:全局变量组件和单独部署组件
- angular自定义组件-UI组件篇-switch组件
- React Hooks 源码解析(一):类组件、函数组件、纯组件
- Vue动态组件和异步组件
- Vue 动态组件 & 异步组件原理
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
深入理解C#(第3版)
斯基特 (Jon Skeet) / 姚琪琳 / 人民邮电出版社 / 2014-4-1 / 99.00元
本书是世界顶级技术专家“十年磨一剑”的经典之作,在C#和.NET领域享有盛誉。与其他泛泛介绍C#的书籍不同,本书深度探究C#的特性,并结合技术发展,引领读者深入C#的时空。作者从语言设计的动机出发,介绍支持这些特性的核心概念。作者将新的语言特性放在C#语言发展的背景之上,用极富实际意义的示例,向读者展示编写代码和设计解决方案的最佳方式。同时作者将多年的C#开发经验与读者分享,读者可咀其精华、免走弯......一起来看看 《深入理解C#(第3版)》 这本书的介绍吧!