1、写一个样式为.containe的div用来包含进度条,其次是用样式为.title的div来包裹标题。 2、接下来,添加样式为.bar的di来包含填充和未填充的进度条样式。最后,在.bar里添加样式为.bar-unfill 和.bar-fill的span标签。 Plain 3.简单的进度条的CSS代码.container 类里将 width 定义为 30% 使进度条能够自适应。放一些简单的 border-radius 之类的属性在我们的 .title 类里以修改顶部和底部的左边的边框弧度,创建一个简单明了的平板式设计。 .container { width:30%margin:0 auto } .title { background:#545965color:#fffpadding:15pxfloat:leftposition:relative-webkit-border-top-left-radius:5px-webkit-border-bottom-left-radius:5px-moz-border-radius-topleft:5px-moz-border-radius-bottomleft:5pxborder-top-left-radius:5pxborder-bottom-left-radius:5px } 4.首先建一个白色的背景 .bar-unfill {height:15pxdisplay:blockbackground:#fffwidth:100%border-radius:8px} 5.定义进度条的样式,先令他的宽度为 100% ,因为这也会应用于定义和未定义的部分。所以在我们的 .bar-fill 的类里,令他的宽度为 0 作为起始的宽度,添加CSS3的 transition 属性使动画效果更加流畅,最后,我们将添加CSS3里的 animation 属性,定义动画的名字,和 duration 和 animation-iteration-count 属性。 .bar-fill { height:15pxdisplay:blockbackground:#45c9a5width:0border-radius:8px-webkit-transition:width .8s ease-moz-transition:width .8s easetransition:width .8s ease-webkit-animation:progressbar 7s infiniteanimation:progressbar 7s infinite } 6.使用CSS3里的 @keyframe 规则来设置宽度从 0 变化到 100% 。你也能定制你自己喜欢的变化。 @-webkit-keyframes progressbar { from { width:0 } to { width:100% } } /* Standard syntax */ @keyframes progressbar { from { width:0 } to { width:100% } } 7.条纹进度条,应该把 .bar-fill 重新命名为 .bar-fill-stripes 。使用 backgrou-image 属性里的 linear-gradient 同时声明它的颜色。剩余的CSS3动画效果也是和上述相同,看下面的代码: .bar-fill-stripes { height:15pxdisplay:blockbackground:#e74c3cwidth:0border-radius:8pxbackground-image:linear-gradient(-45deg,rgba(255,255,255,.2) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.2) 50%,rgba(255,255,255,.2) 75%,transparent 75%,transparent)-webkit-transition:width .8s ease-moz-transition:width .8s easetransition:width .8s ease-webkit-animation:progressbar 7s infiniteanimation:progressbar 7s infinite } 追踪 Tracker 8.最后产生动画效果 .track-wrap { position:relativetop:-18px-webkit-animation:progressbar2 7s infiniteanimation:progressbar2 7s infinite } .track { height:20pxdisplay:blockbackground:#e74c3cwidth:20pxborder-radius:10pxposition:relativeleft:-12px } @-webkit-keyframes progressbar2 { from { left:0 } to { left:100% } } /* Standard syntax */ @keyframes progressbar2 { from { left:0 } to { left:100% }这是一款很酷的带定时消失功能的css3消息提示框插件。
HTML
html结构非常简单:用一个wrapper div作为包裹容器,里面放一个用于显示信息的p标签和一个用来做进度条的div。
Your settings have been saved successfully!
为了给包裹div设置不同的颜色,给它设置两个class:tn-box和tn-box-color-1。
CSS
.tn-box {
width: 360px
position: relative
margin: 0 auto 20px auto
padding: 25px 15px
text-align: left
border-radius: 5px
box-shadow:
0 1px 1px rgba(0,0,0,0.1),
inset 0 1px 0 rgba(255,255,255,0.6)
opacity: 0
cursor: default
display: none
}
.tn-box-color-1{
background: #ffe691
border: 1px solid #f6db7b
}
设置包裹div的初始dispaly:none,并给设置它的透明度为0。
进度条的样式如下:
.tn-progress {
width: 0
height: 4px
background: rgba(255,255,255,0.3)
position: absolute
bottom: 5px
left: 2%
border-radius: 3px
box-shadow:
inset 0 1px 1px rgba(0,0,0,0.05),
0 -1px 0 rgba(255,255,255,0.6)
}
动画开始前,进度条的宽度为0。
在demo中,使用一个checkbox来作为按钮触发消息提示框动画。
input.fire-check:checked ~ section .tn-box {
display: block
animation: fadeOut 5s linear forwards
}
input.fire-check:checked ~ section .tn-box .tn-progress {
animation: runProgress 4s linear forwards 0.5s
}
因为按钮的动作发生在消息提示框之前,所以可以使用一般通用选择器来完成按钮操作。
如果你想使用javascript来完成按钮动作,你可以像下面这样写样式:
.tn-box.tn-box-active {
display: block
animation: fadeOut 5s linear forwards
}
.tn-box.tn-box-active .tn-progress {
animation: runProgress 4s linear forwards 0.5s
}
tn-box-active是在按钮按下时被加到tn-box div中的class。
下面是消息框淡入淡出动画效果:
@keyframes fadeOut {
0% { opacity: 0}
10% { opacity: 1}
90% { opacity: 1transform: translateY(0px)}
99% { opacity: 0transform: translateY(-30px)}
100% { opacity: 0}
}
下面是进度条的动画效果:
@keyframes runProgress {
0% { width: 0%background: rgba(255,255,255,0.3)}
100% { width: 96%background: rgba(255,255,255,1)}
}
我们使它运动到进度条宽度的96%,颜色上使用RGBA。
css如何改变进度条的样式有两步。
1、通过webkitscrollbar属性设置滚动条整体部分。
2、通过webkitscrollbarbutton属性设置滚动条两端的按钮。