布局框架

Material Design 风格信息卡片UI设计

阿里云


这是一款非常时尚的移动手机 Material Design 风格信息卡片 UI 设计效果。该卡片设计效果中所有的卡片在点击或触摸之后,会以平滑过渡动画全屏展开。整个设计以扁平风格为主,非常时尚。

HTML 结构

该卡片 UI 的 HTML 结构分为 2 个部分。div.card__full 是全屏的卡片,div.card__list 是卡片列表。

也想出现在这里?联系我们
创客主机
  1. <div class="view">
  2.   <div class="card__full">
  3.     <div class="card__full-top">
  4.       <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
  5.           <path d="M16.59 8.59l-4.59 4.58-4.59-4.58-1.41 1.41 6 6 6-6z"/>
  6.           <path d="M0 0h24v24h-24z" fill="none"/>
  7.       </svg>
  8.       <span class="card__full-num"></span>
  9.     </div>
  10.     <div class="card__full-bottom">
  11.       <p class="card__full-handle"></p>
  12.       <p class="card__full-info"></p>
  13.     </div>
  14.   </div>
  15.   <ul class="card__list">
  16.     <li class="card__item card__item--blue">
  17.       <div class="card__info">
  18.         <div class="info-player">
  19.           <p class="info-player__num">9</p>
  20.           <p class="info-player__name"><small>Tony</small><br>Romo</p>
  21.         </div>
  22.         <div class="info-place">1<sup>st</sup></div>
  23.       </div>
  24.     </li>
  25.     ......
  26.   </ul>
  27. </div>

CSS 样式

当一张卡片被点击之后,它首先会移动到屏幕的中间。这通过 jQuery 代码的 moveCard()方法来完成。当这个动画结束的时候,div.card__full 会被添加一个.activeclass,默认情况下,div.card__full 是 fixed 定位,并通过 transform: scaleY(0)将其隐藏。在添加了.activeclass 之后,使用 transform: scaleY(1)将它恢复,实现展开效果。

  1. .card__full {
  2.   will-change: transform;
  3.   display: -webkit-box;
  4.   display: -webkit-flex;
  5.   display: -ms-flexbox;
  6.   display: flex;
  7.   -webkit-flex-flow: column wrap;
  8.       -ms-flex-flow: column wrap;
  9.           flex-flow: column wrap;
  10.   position: fixed;
  11.   top: 50%;
  12.   left: 50%;
  13.   width: 384px;
  14.   height: 640px;
  15.   z-index: 2;
  16.   visibility: hidden;
  17.   -webkit-transform-origin: top center;
  18.           transform-origin: top center;
  19.   -webkit-transform: scaleY(0) translate(-50%, -50%);
  20.           transform: scaleY(0) translate(-50%, -50%);
  21.   -webkit-transition: all 0.5s cubic-bezier(0.23, 1, 0.32, 1);
  22.   transition: all 0.5s cubic-bezier(0.23, 1, 0.32, 1);
  23. }
  24. .card__full.active {
  25.   visibility: visible;
  26.   -webkit-transform: scaleY(1) translate(-50%, -50%);
  27.           transform: scaleY(1) translate(-50%, -50%);
  28. }
  29. .card__full.active .card__full-num,
  30. .card__full.active .card__full-handle,
  31. .card__full.active .card__full-info {
  32.   opacity: 1;
  33. }

Javascript

为了计算卡片移动到屏幕中间的距离,这里使用使用 w.innerHeight()/2 - selfO.top -4 来得到要移动的距离,然后使用 translateY()函数来移动它。然后在动画结束的时候,为 div.card__full 添加.active class,使其全屏展开。

  1. var moveCard = function() {
  2.   var self = $(this);
  3.   var selfIndex = self.index();
  4.   var selfO = self.offset();
  5.   var ty = w.innerHeight()/2 - selfO.top -4;
  6.  
  7.   var color = self.css('border-top-color');
  8.   cardfulltop.css('background-color', color);
  9.   cardhandle.css('color', color);
  10.  
  11.   updateData(selfIndex);
  12.  
  13.   self.css({
  14.     'transform': 'translateY(' + ty + 'px)'
  15.   });
  16.  
  17.   self.on('transitionend', function() {
  18.     cardfull.addClass('active');
  19.     self.off('transitionend');
  20.   });
  21.  
  22.   return false;
  23. };

完整的 CSS 和 JS 代码请参考下载文件。

Material Design 风格信息卡片 UI 设计

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

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

发表回复

热销模板

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

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