手风琴

CSS3+jQuery手风琴面板界面设计

阿里云


这是一款使用 CSS3 和一点 jQuery 代码制作的手风琴面板界面效果。该手风琴面板带玻璃流光质感,点击每一个面板时都会以非常炫酷的方式扩展为全屏面板。该界面设计给人的感觉非常的时尚大方。

HTML 结构:

该手风琴面板采用 HTML5 的结构,整体使用一个[section]元素来作为包裹元素,它里面的每一个[article]元素是一个手风琴项。.strip__close 是通用的面板关闭按钮。

也想出现在这里?联系我们
创客主机
  1. <section class="strips">
  2.   <article class="strips__strip">
  3.     <div class="strip__content">
  4.       <h1 class="strip__title" data-name="Ipsum">Words</h1>
  5.       <div class="strip__inner-text">
  6.         <h2>Ettrics</h2>
  7.         <p>....</p>
  8.         <p>
  9.           <a href="#" target="_blank"><i class="fa fa-qq"></i></a>
  10.         </p>
  11.       </div>
  12.     </div>
  13.   </article>
  14.   ......
  15.   <i class="fa fa-close strip__close"></i>
  16. </section>

CSS 样式:

手风琴包裹元素.strips 高度设置为视口的高度,文本居中,并隐藏超出范围的内容。

  1. .strips {
  2.   min-height: 100vh;
  3.   text-align: center;
  4.   overflow: hidden;
  5.   color: white;
  6. }

每一个手风琴项都使用绝对定位,最小高度为视口的高度。因为这里有 5 个手风琴项,它们每一个的宽度都设置为 20%。特效中为手风琴项设置了指定贝兹曲线的动画过渡效果,并使用 will-change 属性来通知浏览器对 width,left,z-index 和 height 这几个属性的动画进行优化。

  1. .strips__strip {
  2.   will-change: width, left, z-index, height;
  3.   position: absolute;
  4.   width: 20%;
  5.   min-height: 100vh;
  6.   overflow: hidden;
  7.   cursor: pointer;
  8.   -webkit-transition: all 0.6s cubic-bezier(0.23, 1, 0.32, 1);
  9.           transition: all 0.6s cubic-bezier(0.23, 1, 0.32, 1);
  10. }

通过 nth-child 选择器来指定每一个手风琴项的 left 属性,使它们排列成一排。每一个手风琴项中的内容都通过 transform: translate3d()函数来进行转换,并执行各种的指定动画。

  1. .strips__strip:nth-child(1) {
  2.   left: 0;
  3. }
  4. .strips__strip:nth-child(2) {
  5.   left: 20vw;
  6. }
  7. .strips__strip:nth-child(3) {
  8.   left: 40vw;
  9. }
  10. .strips__strip:nth-child(4) {
  11.   left: 60vw;
  12. }
  13. .strips__strip:nth-child(5) {
  14.   left: 80vw;
  15. }
  16. .strips__strip:nth-child(1) .strip__content {
  17.   background: #244F75;
  18.   -webkit-transform: translate3d(-100%, 0, 0);
  19.           transform: translate3d(-100%, 0, 0);
  20.   -webkit-animation-name: strip1;
  21.           animation-name: strip1;
  22.   -webkit-animation-delay: 0.1s;
  23.           animation-delay: 0.1s;
  24. }
  25. ......

流光效果使用的是.strip__content 元素的伪元素来制作。

  1. .strips .strip__content:hover:before {
  2.   -webkit-transform: skew(-30deg) scale(3) translate(0, 0);
  3.       -ms-transform: skew(-30deg) scale(3) translate(0, 0);
  4.           transform: skew(-30deg) scale(3) translate(0, 0);
  5.   opacity: 0.1;
  6. }
  7. .strips .strip__content:before {
  8.   content: "";
  9.   position: absolute;
  10.   z-index: 1;
  11.   top: 0;
  12.   left: 0;
  13.   width: 100%;
  14.   height: 100%;
  15.   background: white;
  16.   opacity: 0.05;
  17.   -webkit-transform-origin: center center;
  18.       -ms-transform-origin: center center;
  19.           transform-origin: center center;
  20.   -webkit-transform: skew(-30deg) scaleY(1) translate(0, 0);
  21.       -ms-transform: skew(-30deg) scaleY(1) translate(0, 0);
  22.           transform: skew(-30deg) scaleY(1) translate(0, 0);
  23.   -webkit-transition: all 0.6s cubic-bezier(0.23, 1, 0.32, 1);
  24.           transition: all 0.6s cubic-bezier(0.23, 1, 0.32, 1);
  25. }

最后,每个面板展开时的样式是.strips__strip--expanded,这个 class 是在 jquery 代码中动态添加的。

  1. .strips__strip--expanded {
  2.   width: 100%;
  3.   top: 0 !important;
  4.   left: 0 !important;
  5.   z-index: 3;
  6.   cursor: default;
  7. }

该手风琴特效中使用 jQuery 代码来为各种状态添加和移除相应的 class,代码很简单,具体参考下载文件。

CSS3+jQuery 手风琴面板界面设计

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

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

发表回复

热销模板

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

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