所以,我正在尝试使用纯CSS重新创建我在网上找到的.gif。然而,在创建动画部分时遇到了问题。
这是我正在尝试重新创建的GIF:
如您所见,源图像分解为:
1. 3面墙 2. 9列 3. 27个立方体
然后通过更改为9行,3个平面和一个立方体返回。
我已经用像素测量了所有内容,并且完全“爆炸”状态下一切都符合要求,但我似乎无法弄清如何正确地进行动画处理。
在this fiddle中,您可以看到我已经成功实现了9列。但是,当我尝试动画到27个立方体(从样式列更改为单个立方体)时,我应用了影响“列阶段”中的立方体的边距。请参见this fiddle。
注意:将鼠标悬停在“测试区域”上以触发动画!
有没有办法让边距(所有来自第125行的margin-top)在第二个fiddle中发生的那一刻进行分段,但不影响实际发生2秒延迟之前的块?我想说margin-top应该得到X + 30px或其他东西,但我似乎找不到CSS中这样的东西。我必须求助于jQuery吗?(我想测试一下我能用CSS达到什么程度,所以最好不要!)
这是其中一个块只更改其margin-top的情况,其余的CSS和HTML可以在Fiddles中找到(复制/粘贴所有内容太多了)。
1. 3面墙 2. 9列 3. 27个立方体
然后通过更改为9行,3个平面和一个立方体返回。
我已经用像素测量了所有内容,并且完全“爆炸”状态下一切都符合要求,但我似乎无法弄清如何正确地进行动画处理。
在this fiddle中,您可以看到我已经成功实现了9列。但是,当我尝试动画到27个立方体(从样式列更改为单个立方体)时,我应用了影响“列阶段”中的立方体的边距。请参见this fiddle。
注意:将鼠标悬停在“测试区域”上以触发动画!
有没有办法让边距(所有来自第125行的margin-top)在第二个fiddle中发生的那一刻进行分段,但不影响实际发生2秒延迟之前的块?我想说margin-top应该得到X + 30px或其他东西,但我似乎找不到CSS中这样的东西。我必须求助于jQuery吗?(我想测试一下我能用CSS达到什么程度,所以最好不要!)
这是其中一个块只更改其margin-top的情况,其余的CSS和HTML可以在Fiddles中找到(复制/粘贴所有内容太多了)。
#test-area:hover + #cube .block111, #test-area:hover + #cube .block121, #test-area:hover + #cube .block131 {
margin-top: -30px;
-webkit-transition-delay: 2s;
transition-delay: 2s;
}