纯CSS3实现苹果iOS 7风格进度条

还记得iOS 7的“颠覆性”扁平化设计吗?其中的各种扁平化UI界面都让我们为之惊叹,其中的进度条更是让人喜欢 的不得了。今天就给大家分享一个用CSS3制作的iOS7进度条小教程,这是一款非常优秀的UI交互设计。下面就来看看演示效果以及实现方式吧!

HTML结构代码

首先设计HTML的基本结构,大概如下:

<div class="container">
  <h1 class="text-center">iOS 7进度条</h1>
  <div class="progress">
    <div class="progress-bar">
      <div class="progress-shadow"></div>
    </div>
  </div>
</div>

  

CSS3样式代码

结构写好后,那么我们接下来就是根据iOS的UI设计风格来编写css样式。仔细研究下界面元素,我们可以使用CSS3的渐变属性linear-gradient来完成彩色的横条,除此之外,我们可以注意到横条的下方有一条倾斜的投影,这个细节处理非常好,让整体看起来更加立体、更具美感!但这投影实现比较特殊,我们就不采用box-shadow来制作,我们还是采用渐变属性来完成,然后通过transform来修改其角度,从而达到我们需要的效果。好了,具体全部css代码如下,大家可以参考一下。

<style>
/* www.datouwang.com */
/* VARIABLES */
/* COLORS */
/* BASE */
html, body {
	height: 100%;
}
body {
	background-color: #f5f7f9;
	color: #6c6c6c;
	font: 300 1em/1.5em "Helvetica Neue", sans-serif;
	margin: 0;
	position: relative;
}
h1 {
	font-size: 2.25em;
	font-weight: 100;
	line-height: 1.2em;
	margin: 0 0 1.5em;
}
/* HELPERS */
.text-center {
	text-align: center;
}
/* GRID */
.container {
	left: 50%;
	position: absolute;
	top: 50%;
	transform: translate(-50%, -50%);
}
/* PROGRESS */
.progress {
	background-color: #e5e9eb;
	height: 0.25em;
	position: relative;
	width: 24em;
}
.progress-bar {
	animation-duration: 3s;
	animation-name: width;
	background-image: linear-gradient(to right, #4cd964, #5ac8fa, #007aff, #34aadc, #5856d6, #ff2d55);
	background-size: 24em 0.25em;
	height: 100%;
	position: relative;
}
.progress-shadow {
	background-image: linear-gradient(to bottom, #eaecee, transparent);
	height: 4em;
	position: absolute;
	top: 100%;
	transform: skew(45deg);
	transform-origin: 0 0;
	width: 100%;
}

/* ANIMATIONS */
@keyframes width {
       0%, 100% {
       transition-timing-function: cubic-bezier(1, 0, 0.65, 0.85);
  }
  0% {
       width: 0;
  }
   100% {
      width: 100%;
  }
}
</style>

  

添加CSS3无前缀脚本prefixfree.js

到这里之后,进度条基本已经制作完成了,看着界面是不是有很熟悉的感觉。但是如果细心的你一定会发现,上面的css3代码都没有添加浏览器兼容的前缀。这样子就会导致在不同浏览器下会没有动画效果。这个时候我们可以使用prefixfree.js脚本,这个脚本会自动补上需要的前缀,让各种浏览器支持该CSS3属性。(当然,如果你手动添加所有css3前缀,那么就不需要引入这个插件)

<script src="http://www.datouwang.com/uploads/demo/jiaoben/201501/jiaoben467/js/prefixfree.min.js"></script>

  

转载于:https://www.cnblogs.com/dadatu/p/4347030.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用CSS3的transform和transition属性来实现圆环进度条。首先,创建一个div元素作为进度条的容器,设置宽度和高度,并将其设置为圆形。然后,使用伪元素来创建进度条的背景和前景。通过设置transform属性来旋转前景元素,从而实现进度条动画效果。以下是示例代码: HTML代码: ``` <div class="progress"> <div class="progress-bg"></div> <div class="progress-bar"></div> </div> ``` CSS代码: ``` .progress { width: 100px; height: 100px; border-radius: 50%; position: relative; } .progress-bg, .progress-bar { position: absolute; top: 0; left: 0; width: 100%; height: 100%; border-radius: 50%; } .progress-bg { background-color: #ccc; } .progress-bar { background-color: #f00; transform-origin: center center; transform: rotate(-90deg); transition: transform 1s linear; } .progress-bar[data-progress="25"] { transform: rotate(45deg); } .progress-bar[data-progress="50"] { transform: rotate(90deg); } .progress-bar[data-progress="75"] { transform: rotate(135deg); } .progress-bar[data-progress="100"] { transform: rotate(180deg); } ``` 在进度条的HTML代码中,我们创建了一个div元素作为进度条的容器,并在其中创建了两个div元素,一个用于显示进度条的背景,一个用于显示进度条的前景。 在CSS代码中,我们设置了进度条容器的宽度、高度和圆角半径,并将其设置为相对定位。我们还设置了进度条背景和前景的样式,其中背景使用了灰色的背景色,前景使用了红色的背景色,并将其旋转了-90度,使其位于进度条的左侧。 我们还为前景元素设置了transform-origin属性,将其旋转中心设置为元素的中心点。然后,我们为前景元素设置了一个过渡效果,使其在旋转时产生动画效果。 最后,我们使用data-progress属性来控制进度条进度,通过设置不同的旋转角度来显示不同的进度。例如,设置data-progress="25"时,前景元素将旋转45度,表示进度条进度为25%。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值