Day 27 | 等待的时间不无聊 - loader

今天想要分享的是这一个 Youtube 影片做出来的等待画面,
我只有挑他的其中一个写,
其他可以看他影片做做看。

loader 是个在网页 render 前的东西,
让你知道还要等一下,
等动画结束的时候,就是页面 loading 好的时候。

本篇关键字

  • position: absolute
  • ::after
  • border

范例档

HTML

<span class="spinner"></span>

CSS

body{
  height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
}

.spinner{ 
  display: block;
  width: 100px;
  height: 100px;
  border-radius: 50%;
  background-color: #ddd;
  position: relative;
}

.spinner::after{
  content:'';
  position: absolute;
  top: -4px;
  left: -4px;
  width: 100px;
  height: 100px;
  border-style: solid;
  border-width: 4px;
  border-radius: 50%;
  border-color: darkolivegreen transparent;
  animation: rotate .9s infinite linear;
}

@keyframes rotate{
  0% {
    transform: rotate(0deg) scale(1);
  }

  50%{
    transform: rotate(60deg) scale(1.2);
  }

  100% {
    transform: rotate(360deg) scale(1);
  }
}
  • ::after 设定跟 .spinner 一样的大小
  • 老样子用 position: absolute::after 定位到 .spinner
  • 要注意有 border 的话,topleft 要考虑 border 的宽度
  • 设定上下 border 有颜色,左右透明,做出 ( ) 效果(反过来设定也可以啦)
  • 设定 @keyframes 做出转动有被加速的效果,设定 animation-speed 应该也能达到类似效果

以上就是今天的内容,如果有讲不对的地方再请各位留言让我知道,谢谢。
明天要来组合画面罗~


<<:  第廿七天:旅游快结束的周一

>>:  「Wordpress 外挂开发」多重roles延伸版本,你还需要自定义roles

制作婚礼现场即时留言版- Azure SignalR Service II

第12 届iT邦帮忙铁人赛系列文章 (Day29) 在上一篇我们用 Console App 发送讯息...

渗透测试网路篇

渗透测试(PT)阿 如果你是上过关於渗透测试相关的国际课程,或是看过一些相关的规范, 其实有些都会将...

Day32. 范例:资料库连线(单例模式)

本文同步更新於blog 需求一:客户想要能与资料库连线的类别 <?php namespac...

Day 4 基本 flask 函式 (1)

前言 昨天提到了一些 flask 的例子,而今天会继续深入讨论他提供的一些函式,可以让写出来的网页有...

Day12:合并排序(Merge Sort)

Divide and conquer(分而治之法) Divide and conquer 顾名思义是...