今天我们想与你分享一个小小的动画概念。这个想法是旋转中 3D 网格项、 全屏显示将其展开和透露的一些内容。
让我们看一看标记和一些重要的样式,要理解这个概念的影响如何完成的。
我们有主section包含网格,另一个为内容的元素:
<section class="grid3d vertical" id="grid3d"> <div class="grid-wrap"> <div class="grid"> <figure><img src="img/1.jpg" alt="img01"/></figure> <figure><img src="img/2.jpg" alt="img02"/></figure> <figure><img src="img/3.jpg" alt="img03"/></figure> <!-- ... --> </div> </div><!-- /grid-wrap --> <div class="content"> <div> <div class="dummy-img"></div> <p class="dummy-text">Some text</p> <p class="dummy-text">Some more text</p> </div> <div> <!-- ... --> </div> <!-- ... --> <span class="loading"></span> <span class="icon close-content"></span> </div> </section>
当我们单击网格项时,我们就去按顺序来选择匹配的内容划分。内容司还包含两个范围、 活动指示灯来模拟一些加载和交叉闭幕。
我们旋转和扩大影响的占位符将动态地添加到网格和结构如下所示:
<div class="placeholder"> <div class="front"><!-- content of clicked grid item --></div> <div class="back"></div> </div>
让我们看看一些关键的样式。
网格-换行将带有角度的元素
.grid-wrap { margin: 10px auto 0; max-width: 1090px; width: 100%; padding: 0; perspective: 1500px; }
网格将会有一个过渡,我们需要将保留 3d变换样式分配给它,因为我们想要能够旋转它的孩子在 3D:
.grid { position: relative; transition: all 0.5s cubic-bezier(0,0,0.25,1); transform-style: preserve-3d; }
当我们单击网格项时,我们将类视图-全部添加到这将使我们移动的网格的网格:
.view-full .grid { transform: translateZ(-1500px); }
当我们点击网格项目,我们会让它淡出:
.grid figure.active { opacity: 0; }