图片/图形

Material Design 风格扩展遮罩面板界面设计

阿里云


这是一款效果非常漂亮的 Material Design 风格扩展遮罩面板界面设计。在页面的下方有多个菜单选项,当用户点击其中某个选项时,它会变形扩展为全屏遮罩层,动画过渡非常平滑自然,效果很酷。

HTML 结构

所有的方形选项卡都是由无序列表来制作,每一个选项卡对应的内容面板也是由一个无序列表组成。

也想出现在这里?联系我们
创客主机
  1. <ul class="blocks-names">
  2.   <li class="blocks__name">Eggs</li>
  3.   <li class="blocks__name">Bacon</li>
  4.   <li class="blocks__name">Toast</li>
  5.   <li class="blocks__name">Donuts</li>
  6.   <li class="blocks__name">Coffee</li>
  7. </ul>
  8. <ul class="blocks">
  9.   <li id="1" class="blocks__block"></li>
  10.   <li id="2" class="blocks__block"></li>
  11.   <li id="3" class="blocks__block"></li>
  12.   <li id="4" class="blocks__block"></li>
  13.   <li id="5" class="blocks__block"></li>
  14. </ul>
  15. <ul class="blocks-content">
  16.   <li class="blocks-content__content">
  17.     <div class="content__close"></div>
  18.     <h2>Eggs</h2>
  19.     <p>...</p>
  20.     <i class="blocks__content-close fa fa-close"></i>
  21.   </li>
  22.   ......
  23. </ul>

CSS 样式

方块选项卡的无序列表采用绝对定位,规定在页面的底部。并且设置它的显示方式为 flex。

  1. .blocks {
  2.   position: fixed;
  3.   bottom: 0;
  4.   z-index: 1;
  5.   list-style-type: none;
  6.   display: -webkit-box;
  7.   display: -webkit-flex;
  8.   display: -ms-flexbox;
  9.   display: flex;
  10.   width: 100%;
  11.   margin: 0;
  12.   padding: 0;
  13. }

方块选项卡中的每一个列表项使用相对定位,高度设置为 1/5 视口高度。flex: 1;的意思是让所有的列表项宽度相等,使用这个属性的好处是无论你在网里面加或减少选项,它们的宽度都能保持相等。关于这个属性可以参考:Flexbox 使用向导-深入理解 flex 属性。will-change 属性用于浏览器性能的优化。最后更为动画过渡设置了指定的贝兹曲线。

  1. .blocks__block {
  2.   will-change: transform;
  3.   position: relative;
  4.   height: 20vh;
  5.   -webkit-box-flex: 1;
  6.   -webkit-flex: 1;
  7.       -ms-flex: 1;
  8.           flex: 1;
  9.   -webkit-transition: all 0.7s cubic-bezier(0.23, 1, 0.32, 1);
  10.           transition: all 0.7s cubic-bezier(0.23, 1, 0.32, 1);
  11. }

遮罩层内容无序列表同样使用绝对定位,高度和宽度与视口大小相等。

  1. .blocks-content {
  2.   list-style-type: none;
  3.   margin: 0;
  4.   padding: 0;
  5.   position: absolute;
  6.   bottom: 0;
  7.   left: 0;
  8.   height: 100vh;
  9.   width: 100%;
  10. }

它里面的内容同样使用 flex 来显示,里面的各种 flex 属性的使用方法可以参考:CSS3 flexbox 简介和使用指南。

  1. .blocks-content {
  2.   list-style-type: none;
  3.   margin: 0;
  4.   padding: 0;
  5.   position: absolute;
  6.   bottom: 0;
  7.   left: 0;
  8.   height: 100vh;
  9.   width: 100%;
  10. }
  11. .blocks-content__content {
  12.   will-change: transform, opacity;
  13.   display: -webkit-box;
  14.   display: -webkit-flex;
  15.   display: -ms-flexbox;
  16.   display: flex;
  17.   -webkit-box-align: center;
  18.   -webkit-align-items: center;
  19.       -ms-flex-align: center;
  20.           align-items: center;
  21.   -webkit-box-pack: center;
  22.   -webkit-justify-content: center;
  23.       -ms-flex-pack: center;
  24.           justify-content: center;
  25.   text-align: center;
  26.   -webkit-box-orient: vertical;
  27.   -webkit-box-direction: normal;
  28.   -webkit-flex-direction: column;
  29.       -ms-flex-direction: column;
  30.           flex-direction: column;
  31.   position: fixed;
  32.   width: 100%;
  33.   z-index: 3;
  34.   top: 0;
  35.   left: 0;
  36.   height: 100vh;
  37.   padding: 10vw;
  38.   font-size: 20px;
  39.   opacity: 0;
  40.   visibility: hidden;
  41.   text-align: center;
  42.   -webkit-transform: scale(0.9);
  43.       -ms-transform: scale(0.9);
  44.           transform: scale(0.9);
  45.   -webkit-transition: all 0.3s 0.2s ease-out;
  46.           transition: all 0.3s 0.2s ease-out;
  47. }
  48. .blocks-content__content.active {
  49.   opacity: 1;
  50.   -webkit-transform: scale(1);
  51.       -ms-transform: scale(1);
  52.           transform: scale(1);
  53.   visibility: visible;
  54. }
  55. .blocks-content .blocks__content-close {
  56.   position: absolute;
  57.   right: 2vw;
  58.   top: 2vh;
  59.   font-size: 30px;
  60.   cursor: pointer;
  61.   -webkit-transition: all 0.2s ease-out;
  62.           transition: all 0.2s ease-out;
  63. }
  64. .blocks-content .blocks__content-close:hover {
  65.   -webkit-transform: scale(1.1);
  66.       -ms-transform: scale(1.1);
  67.           transform: scale(1.1);
  68. }

Material Design 风格扩展遮罩面板界面设计

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

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

发表回复

热销模板

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

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