CSS3 动画按钮
2013-01-13 21:26
232 查看
做一款动画按钮效果,主要是学习CSS3的一些效果。在Chrome,Firefox 和 Safari 浏览器中效果最佳。
HTML 部分对应的class为praticle,代码如下:
这些精美的效果用到了 CSS3 border-radius(圆角)、box-shadow(阴影)、transition(变形)、transform(转换)和 animation(动画)等特性,
精简以后的代码如下:
上面的代码中用到了贝塞尔曲线,贝赛尔曲线的每一个顶点都有两个控制点,用于控制在该顶点两侧的曲线的弧度。它是应用于二维图形应用程序的数学曲线。曲线的定义有四个点:起始点、终止点(也称锚点)以及两个相互分离的中间点。滑动两个中间点,贝塞尔曲线的形状会发生变化。由于用计算机画图大部分时间是操作鼠标来掌握线条的路径,与手绘的感觉和效果有很大的差别。即使是一位精明的画师能轻松绘出各种图形,拿到鼠标想随心所欲的画图也不是一件容易的事。这一点是计算机万万不能代替手工的工作,所以到目前为止人们只能颇感无奈。使用贝塞尔工具画图很大程度上弥补了这一缺憾。
贝塞尔曲线
贝塞尔曲线是计算机图形图像造型的基本工具,是图形造型运用得最多的基本线条之一。它通过控制曲线上的四个点(起始点、终止点以及两个相互分离的中间点)来创造、编辑图形。
这种效果的Praticle的代码精简后如下:
这个效果使用了 CSS3 radial-gradient(径向渐变或者放射性渐变,另外一种是线性渐变)、repeating-radial-gradient(重复渐变)以及 CSS3 Animation(动画)。
这里只实现了其中的一个button,源代码在这里。
五个button的演示在这里。
HTML 部分对应的class为praticle,代码如下:
<section> <div class="particle"></div> </section>
这些精美的效果用到了 CSS3 border-radius(圆角)、box-shadow(阴影)、transition(变形)、transform(转换)和 animation(动画)等特性,
精简以后的代码如下:
section > div { display: inline-block; position: relative; width: 200px; height: 200px; margin: 0px auto; /*对于正方形元素border-radius设置为50%刚好变成圆形*/ border-radius: 50%; /*宽度为10px的、不透明度为0.7的黑色边框效果*/ border: 10px solid hsla(0,0%,0%,.7); /*通过边框阴影实现立体按钮效果,inset是内阴影效果*/ box-shadow: inset 0 15px 15px -5px hsla(0,0%,100%,.7), inset 0 -5px 10px 3px hsla(0,0%,0%,.6), 0 8px 10px 2px hsla(0,0%,0%,.3); background-position: center; /*初始缩放0.66倍*/ transform: scale(.66); /*在失去焦点时根据自定义的贝塞尔时间曲线做动画变换效果*/ transition: transform .5s cubic-bezier(.32,0,.15,1); } section > div:hover { cursor: none; /*悬停时恢复原始大小*/ transform: scale(1); /*鼠标悬停时根据自定义的贝塞尔时间曲线做动画变换效果*/ transition: transform .2s cubic-bezier(.32,0,.15,1); }
上面的代码中用到了贝塞尔曲线,贝赛尔曲线的每一个顶点都有两个控制点,用于控制在该顶点两侧的曲线的弧度。它是应用于二维图形应用程序的数学曲线。曲线的定义有四个点:起始点、终止点(也称锚点)以及两个相互分离的中间点。滑动两个中间点,贝塞尔曲线的形状会发生变化。由于用计算机画图大部分时间是操作鼠标来掌握线条的路径,与手绘的感觉和效果有很大的差别。即使是一位精明的画师能轻松绘出各种图形,拿到鼠标想随心所欲的画图也不是一件容易的事。这一点是计算机万万不能代替手工的工作,所以到目前为止人们只能颇感无奈。使用贝塞尔工具画图很大程度上弥补了这一缺憾。
贝塞尔曲线
贝塞尔曲线是计算机图形图像造型的基本工具,是图形造型运用得最多的基本线条之一。它通过控制曲线上的四个点(起始点、终止点以及两个相互分离的中间点)来创造、编辑图形。
这种效果的Praticle的代码精简后如下:
这个效果使用了 CSS3 radial-gradient(径向渐变或者放射性渐变,另外一种是线性渐变)、repeating-radial-gradient(重复渐变)以及 CSS3 Animation(动画)。
.particle { background-size: 12px 12px; background-color: #000; /*前面公共样式部分box-shadow产生的高亮效果太强,这里重新配置*/ box-shadow: inset 0 15px 15px -5px hsla(0,0%,100%,.25), inset 0 -5px 10px 3px hsla(0,0%,0%,.6), 0 8px 10px 2px hsla(0,0%,0%,.3); /*使用径向渐变和重复渐变来实现背景图片效果*/ background-image: radial-gradient( #555 0px, hsla(0,0%,0%,0) 2px, hsla(0,0%,0%,0) 24px), repeating-radial-gradient( white 0px, black 2px, black 48px); } .particle:hover { /*鼠标悬停的时候执行particle-size和particle-positon两个动画效果*/ animation: particle-size .24s linear infinite, particle-positon .48s linear infinite alternate; } @keyframes particle-size { /*这个名为particle-size的关键帧用来产生背景尺寸变化动画效果*/ from { background-size: 6px 6px, 12px 12px; } to { background-size: 12px 12px, 24px 24px; } } @keyframes particle-positon { /*这个名为particle-positon的关键帧用来产生背景位置变化动画效果*/ from { background-position: 60px, 60px; } to { background-position: 140px, 140px; } }
这里只实现了其中的一个button,源代码在这里。
五个button的演示在这里。
相关文章推荐
- CSS3 Transitions属性打造动画的下载按钮特效
- 最新的css3动画按钮效果
- CSS3和js炫酷点击按钮3D翻转动画特效
- CSS3鼠标滑动动画按钮特效
- 8款超酷而实用的CSS3按钮动画
- 冒泡动画按钮的简单实现(使用CSS3)
- 纯css3实现的动画按钮的实例教程
- css3 做一个会动的菜单 menu 按钮动画效果
- css3 呼吸动画按钮
- 美妙的 CSS3 动画!一组梦幻般的按钮效果
- 纯css3实现的鼠标悬停动画按钮
- 【技术控】 如何做按钮小动画?HTML+CSS3
- 5个基于css3超炫的鼠标滑动按钮动画
- 6种炫酷的CSS3按钮边框动画特效
- 一款基于css3的动画按钮代码教程
- [CSS3] 动画暗角按钮
- css3实现动画对号选择按钮
- 纯CSS3冒泡动画按钮实现教程
- 纯css3开关按钮动画特效插件