web299.com
全部
教育
语言/资格考试
法律
互联网
政务民生
Word模板
Excel模板
PPT模板
网页特效
小程序模板
网站模板
首页
教育
语言/资格考试
法律
互联网
政务民生
Word模板
Excel模板
PPT模板
网页特效
小程序模板
网站模板
当前位置:
首页
>
网页特效
>
音频和视频
基于Snap.svg炫酷按钮变形为音乐播放器特效
分类:
音频和视频
日期:
2024-05-14
点击(0)
评论(0)
演 示
免费下载
简介
##### HTML结构 在该特效的HTML结构中,使用一个div.component作为包裹容器,在这个div上,使用data-path-start属性来记录动画的开始路径(初始化按钮),使用data-path-listen来记录圆形路径(圆形按钮)和使用data-path-player来记录音乐播放器的矩形路径。 在包裹容器中有一个SVG元素,它用于制作路径变形动画,它的大小被设置为和初始按钮的尺寸相同。另外还有一个button元素,它里面包含了初始按钮和圆形按钮。最后的div.player是音乐播放器界面。 ```html
Listen to this song
Virtual Insight
Water 4 The Soul
by
Gramatik
``` ##### CSS样式 在CSS样式中,包裹容器的大小被设置为和SVG元素的大小相同,z-index设置为1是为了确保其它的页面元素在容器之上,而舞动的音符在它的下面。 ```html .component { position: relative; z-index: 1; width: 300px; height: 500px; margin: 0 auto; } ``` 按钮的路径填充为白色。 ```html .morph__button { fill: #fff; } ``` 接下来给按钮定义一些样式。.button样式是初始按钮,圆形按钮和音乐播放器上的关闭按钮的通用样式。 ```html .button { font-weight: bold; position: absolute; bottom: 4px; left: 20px; width: calc(100% - 40px); height: 60px; padding: 0; text-align: center; color: #00a7e7; border: none; background: none; -webkit-transition: opacity 0.3s; transition: opacity 0.3s; -webkit-tap-highlight-color: rgba(0, 0, 0, 0); } .button:hover, .button:focus { outline: none; color: #048abd; } .button--listen { pointer-events: none; } .button--close { z-index: 10; top: 0px; right: 0px; left: auto; width: 40px; height: 40px; padding: 10px; color: #fff; } .button--close:hover, .button--close:focus { color: #ddd; } .button--hidden { pointer-events: none; opacity: 0; } ``` 最后一个class用于控制开始和圆形按钮的可见性。 按钮内容的通用样式如下:默认情况下,内容是隐藏的,添加transition过渡效果使其能平滑过渡。 ```html .button__content { position: absolute; opacity: 0; -webkit-transition: -webkit-transform 0.4s, opacity 0.4s; transition: transform 0.4s, opacity 0.4s; } ``` 开始按钮的样式如下,其中timing函数有类似弹跳的动画过渡效果。 ```html .button__content--start { top: 0; left: 0; width: 100%; padding: 1.2em; text-indent: 1px; letter-spacing: 1px; -webkit-transform: translate3d(0, -25px, 0); transform: translate3d(0, -25px, 0); -webkit-transition-timing-function: cubic-bezier(0.8, -0.6, 0.2, 1); transition-timing-function: cubic-bezier(0.8, -0.6, 0.2, 1); } ``` 圆形按钮内容的样式如下:元素的居中是通过设置50%的left值,然后通过元素一半宽度的负margin值来实现的。 ```html .button__content--listen { font-size: 1.75em; line-height: 64px; bottom: 0; left: 50%; width: 60px; height: 60px; margin: 0 0 0 -30px; border-radius: 50%; -webkit-transform: translate3d(0, 25px, 0); transform: translate3d(0, 25px, 0); -webkit-transition-timing-function: cubic-bezier(0.8, 0, 0.2, 1); transition-timing-function: cubic-bezier(0.8, 0, 0.2, 1); } ``` 接下来是圆形按钮的辐射波效果。这里使用::before和::after伪元素,它们使用绝对定位,并被设置为圆形。 ```html .button__content--listen::before, .button__content--listen::after { content: ''; position: absolute; left: 0; width: 100%; height: 100%; pointer-events: none; opacity: 0; border: 1px solid rgba(255, 255, 255, 0.2); border-radius: 50%; } ``` 这两个圆环将用于制作辐射波动画。 ```html .button--animate .button__content--listen::before, .button--animate .button__content--listen::after { -webkit-animation: anim-ripple 1.2s ease-out infinite forwards; animation: anim-ripple 1.2s ease-out infinite forwards; } ``` 为::after伪元素制作的圆环添加一些时间延迟。 ```html .button--animate .button__content--listen::after { -webkit-animation-delay: 0.6s; animation-delay: 0.6s; } ``` 接下来定义keyframes帧动画。 ```html @-webkit-keyframes anim-ripple { 0% { opacity: 0; -webkit-transform: scale3d(3, 3, 1); transform: scale3d(3, 3, 1); } 50% { opacity: 1; } 100% { opacity: 0; -webkit-transform: scale3d(1, 1, 1); transform: scale3d(1, 1, 1); } } @keyframes anim-ripple { 0% { opacity: 0; -webkit-transform: scale3d(3, 3, 1); transform: scale3d(3, 3, 1); } 50% { opacity: 1; } 100% { opacity: 0; -webkit-transform: scale3d(1, 1, 1); transform: scale3d(1, 1, 1); } } ```
相关推荐
html5浪漫粒子表白文字特效
SlidesJS幻灯片特效
html5瀑布流相册特效
css3 svg实现的情人节表白鲜花动画特效
t-scroll.js基于ES6的DOM元素,过渡动画库插件
纯js写省市区三级联动效果
广告
广告