按钮图标

Material Design风格组合按钮变形动画特效

阿里云

这是一款非常时尚的 Material Design 风格组合按钮变形动画特效。这个特效中有左右两个按钮,点击其中一个按钮后,两个按钮会向中间移动,被点击的按钮覆盖没有被点击的按钮,并以平滑的方式扩展为一个矩形的对话框。

使用方法:

这个特效的 HTML 结构非常简单。使用一个容器 div.buttons-ctn 来包裹两个按钮。div.button__content 分别是两个按钮的对应内容,在相应按钮被点击的时候才会出现。

也想出现在这里?联系我们
创客主机
  1. <div class="buttons-ctn">
  2.   <a href="#" class="button button--left"><span>Left</span></a>
  3.   <a href="#" class="button button--right"><span>Right</span></a>
  4. </div>
  5. <div class="button__content button__content--left">
  6.   <h2>You chose left!</h2>
  7.   <a href="#">Signup for nothing here</a>
  8. </div>
  9. <div class="button__content button__content--right">
  10.   <h2>You chose right!</h2>
  11.   <a href="#">Signup for nothing here</a>
  12. </div>

CSS 样式:

在该按钮特效中,按钮都设置为左浮动,这样使它们并排排列在一起。

  1. .button {
  2.   will-change: transform;
  3.   position: relative;
  4.   float: left;
  5.   display: inline-block;
  6.   padding: 20px;
  7.   width: 140px;
  8.   text-align: center;
  9.   line-height: normal;
  10.   -webkit-transition: all 0.35s cubic-bezier(0.175, 0.885, 0.32, 1.275);
  11.           transition: all 0.35s cubic-bezier(0.175, 0.885, 0.32, 1.275);
  12. }

按钮对应的窗口内容被居中定位,默认是隐藏的。这些窗口变为可见状态时通过使用 jQuery 代码来为它添加.button__content--active class 实现的。

  1. .button__content {
  2.   display: block;
  3.   position: absolute;
  4.   top: 50%;
  5.   left: 50%;
  6.   -webkit-transform: translate(-50%, -50%);
  7.       -ms-transform: translate(-50%, -50%);
  8.           transform: translate(-50%, -50%);
  9.   padding: 60px 20px;
  10.   text-align: center;
  11.   width: 600px;
  12.   visibility: hidden;
  13.   opacity: 0;
  14.   z-index: 10;
  15.   color: white;
  16. }
  17. .button__content--active {
  18.   opacity: 1;
  19.   visibility: visible;
  20. }

在 CSS 代码中需要注意的是 z-index 值的设置。弹出的窗口的 z-index 必须必按钮的要高,这样它们才不会被按钮遮挡住。

JAVASCRIPT 代码:

当某个按钮被点击之后,jQuery 代码中首先找出是哪个按钮被点击了。然后根据减少 offset().left 值以及.innerWidth() / 2 一半的屏幕刻度值来将两个按钮向中间移动。没有被选择的按钮被设置了一个 transition-delay 值,使它延迟一些时间在移动。当过渡动画结束的时候,开始将按钮的尺寸缩放到内容窗口的大小尺寸。这是通过内容窗口的.innerWidth()除以按钮的.innerWidth()来实现。这个值是用于 transform: scale(x)的值。在高度上也使用相同的手法来进行处理。具体的实现代码请参考下载文件。

Material Design 风格组合按钮变形动画特效

已有 368 人购买
查看演示升级 VIP立刻购买

演示地址 下载地址
收藏
(0)

发表回复

热销模板

Ashade - 作品展示摄影相册WordPress汉化主题
LensNews

本站承接 WordPress / PbootCMS / DedeCMS 等
系统建站、仿站、开发、定制等业务!