布局框架

纯CSS3动感手风琴列表UI界面设计

阿里云


这是一款使用纯 CSS3 制作的动感垂直手风琴列表 ui 界面设计效果。该手风琴特效设计时尚,颜色搭配非常好,每次点击手风琴项时都带有很酷的动画效果。

HTML 结构

该手风琴特效的每一个手风琴项使用的是元素和

也想出现在这里?联系我们
创客主机
  1. <div class='right'>
  2.   <div class='app'>
  3.     <div class='app_inner'>
  4.       <!-- 第一个手风琴项 -->
  5.       <input checked='' id='tab-1' name='buttons' type='radio'>
  6.       <label for='tab-1'>
  7.         <div class='app_inner__tab'>
  8.           <h2>
  9.             <i class='icon ion-android-alarm-clock'></i>
  10.             8am - 10am
  11.           </h2>
  12.           <div class='tab_left'>
  13.             <i class='big icon ion-android-color-palette'></i>
  14.             <div class='tab_left__image'>
  15.               <i class='icon ion-android-color-palette'></i>
  16.             </div>
  17.           </div>
  18.           <div class='tab_right'>
  19.             <h3>Jamie talks design</h3>
  20.             <h4>Monday - Thursday</h4>
  21.             <p>I talk a bunch of rubbish</p>
  22.             <button>More information</button>
  23.           </div>
  24.         </div>
  25.       </label>
  26.       <!-- 第二个手风琴项 -->
  27.       ......
  28.     </div>
  29.   </div>
  30. </div>

CSS 样式

手风琴的包裹元素 div.app 使用绝对定位,设置为固定的宽度和高度,以及一些阴影效果。同时使用帧动画来在页面加载时为手风琴添加一些放大和旋转的效果。

  1. .app {
  2.   border-radius: 10px;
  3.   width: 340px;
  4.   margin: 0 auto;
  5.   height: 414px;
  6.   position: absolute;
  7.   left: 0;
  8.   top: 35%;
  9.   box-shadow: 4px 5px 0px rgba(0, 0, 0, 0.11);
  10.   -webkit-animation: intro 0.34s 0.4s cubic-bezier(1, 1.4, 0.41, 1.01) forwards;
  11.           animation: intro 0.34s 0.4s cubic-bezier(1, 1.4, 0.41, 1.01) forwards;
  12.   -webkit-transform: translateY(-50%) scale(0) rotateX(10deg) rotateY(10deg) rotateZ(10deg);
  13.           transform: translateY(-50%) scale(0) rotateX(10deg) rotateY(10deg) rotateZ(10deg);
  14.   margin: auto;
  15.   overflow: hidden;
  16.   font-family: 'Roboto Condensed', sans-serif;
  17. }

接着在每一个手风琴项中,使用 checkBox hack 技术来设置手风琴项选中和未选中时,手风琴项中的左右侧内容的动画效果。

  1. .app_inner {
  2.   position: relative;
  3. }
  4. .app_inner input[type="radio"] {
  5.   display: none;
  6. }
  7. .app_inner input[type="radio"]:checked + label .app_inner__tab {
  8.   height: 175px;
  9. }
  10. .app_inner input[type="radio"]:checked + label .app_inner__tab .tab_right {
  11.   top: 39px;
  12.   -webkit-transition: all 0.3s 0.2s cubic-bezier(0.455, 0.03, 0.515, 0.955);
  13.   transition: all 0.3s 0.2s cubic-bezier(0.455, 0.03, 0.515, 0.955);
  14. }
  15. .app_inner input[type="radio"]:not(checked) + label .app_inner__tab {
  16.   height: 80px;
  17.   border-left: 12px solid rgba(0, 0, 0, 0.12);
  18. }
  19. .app_inner input[type="radio"]:not(checked) + label .app_inner__tab .tab_right {
  20.   top: 200px;
  21.   -webkit-transition: all 0.3s 0.3s cubic-bezier(0.455, 0.03, 0.515, 0.955);
  22.   transition: all 0.3s 0.3s cubic-bezier(0.455, 0.03, 0.515, 0.955);
  23. }
  24. .app_inner input[type="radio"]:checked + label .app_inner__tab .tab_left .tab_left__image {
  25.   -webkit-animation: move_in 0.55s 0.05s cubic-bezier(0.455, 0.03, 0.515, 0.955) forwards;
  26.           animation: move_in 0.55s 0.05s cubic-bezier(0.455, 0.03, 0.515, 0.955) forwards;
  27.   -webkit-transition: all 0.3s 0.36s cubic-bezier(0.455, 0.03, 0.515, 0.955);
  28.   transition: all 0.3s 0.36s cubic-bezier(0.455, 0.03, 0.515, 0.955);
  29. }
  30. .app_inner input[type="radio"]:not(checked) + label .app_inner__tab .tab_left .tab_left__image {
  31.   -webkit-animation: move_out 0.75s 0s cubic-bezier(0.455, 0.03, 0.515, 0.955) forwards;
  32.           animation: move_out 0.75s 0s cubic-bezier(0.455, 0.03, 0.515, 0.955) forwards;
  33.   -webkit-transition: all 0.3s 0.3s cubic-bezier(0.455, 0.03, 0.515, 0.955);
  34.   transition: all 0.3s 0.3s cubic-bezier(0.455, 0.03, 0.515, 0.955);
  35. }
  36. .app_inner input[type="radio"]:checked + label .app_inner__tab .tab_left .big {
  37.   left: 260px;
  38. }
  39. .app_inner input[type="radio"]:not(checked) + label .app_inner__tab .tab_left .big {
  40.   left: 400px;
  41. }
  42. .app_inner input[type="radio"]:checked + label .app_inner__tab h2 i {
  43.   opacity: 0;
  44. }
  45. .app_inner input[type="radio"]:not(checked) + label .app_inner__tab h2 i {
  46.   opacity: .3;
  47. }

具体的 CSS 实现代码请参考下载文件。

纯 CSS3 动感手风琴列表 UI 界面设计

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

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

发表回复

热销模板

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

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