【问题标题】:Flipping Cube on page load CSS在页面加载 CSS 时翻转立方体
【发布时间】:2016-09-12 02:03:33
【问题描述】:

基本上我正在尝试创建我在site 上找到的这种翻转效果

当点击最右边的箭头(看到箭头悬停在彩色部分的最右边)时,您可以看到主标题和副标题的效果,这会使标题向上翻转。

我真的不知道怎么做这个效果,所以我在网上找到了一个例子,但问题是它有悬停状态,我不知道如何让它自动启动在页面加载而不是悬停。正如您在此示例中看到的,反面 A 和 B 都是彩色的,我希望从 A 面开始,背景为白色,文本为白色,然后将其翻转为彩色版本,换句话说,从不可见到可见。

在这里查看我的工作Demo

这个例子的代码如下:

/* Set-up */
body {
  color: rgb(6, 106, 117);
  text-transform: uppercase;
  font-family: sans-serif;
  font-size: 100%;
  background: #F4F6F8;
  padding: 3em 0 0 0;
  line-height: 62px;
  -webkit-perspective: 1000px;  /* <-NB */
}
/* Container box to set the sides relative to */
.cube {
  width: 30%;
  text-align: center;
  margin: 0 auto;
  height: 100px;
  -webkit-transition: -webkit-transform .33s;
  transition: transform .33s;  /* Animate the transform properties */
  -webkit-transform-style: preserve-3d;
  transform-style: preserve-3d;  /* <-NB */
}
/* The two faces of the cube */
.flippety,.flop {
  background: rgb(247, 247, 247);
  border: 1px solid rgba(147, 184, 189, .8);
  height: 100px;
}
/* Position the faces */
.flippety {
  -webkit-transform: translateZ(50px);
  transform: translateZ(50px);
}
.flop {
  -webkit-transform: rotateX(-90deg) translateZ(-50px);
  transform: rotateX(-90deg) translateZ(-50px);
}
/* Rotate the cube */
.cube:hover {
  -webkit-transform: rotateX(89deg);
  transform: rotateX(89deg);  /* Text bleed at 90º */
}
<div class="cube">
  <div class="flippety">
    <h1>Flippity</h1>
  </div>
  <div class="flop">
    <h2>Flop</h2>
  </div>
</div>

我的目标: 是创建一个翻转立方体,在页面加载时自动翻转我的标题(无悬停)。

如果有什么不清楚的地方请告诉我,我会尽量解释清楚。谢谢!

【问题讨论】:

  • 你自己试过什么?实际上你的问题是模棱两可的
  • 是的,我有,但那是一团糟,所以我没有发布它,它只会造成混乱

标签: html css css-animations css-shapes css-transforms


【解决方案1】:

在您给出的示例中,标题翻转没有 3d 变换。它是 Y 轴上的简单 2D 平移,如下所示:

div{
  position:relative;
  font-size:2em;
  line-height:1.2em;
  height:1.2em;
  overflow:hidden;
}
h2{
  font-size:1em;
  margin:0; padding:0;
  animation:slide .5s .5s ease-out forwards;
}
@keyframes slide {
  to {transform:translateY(-1.2em);
}
<div id="titles">
  <h2>this is title one</h2>
  <h2>This is a second title</h2>
</div>

【讨论】:

  • 非常感谢,这很有帮助!
【解决方案2】:

我不确定您要完成什么,但如果您只想在页面准备好时翻转一次,您可以将 css 类“.cube:hover”更改为“.cubeRotate”,然后使用 jQuery像这样在页面加载时旋转它:

$( document ).ready(function() {
     $(".cube").addClass("cubeRotate");
});

您可以在此处查看:https://jsfiddle.net/qro8euyo/ 使用 2 秒延迟(否则用户将无法捕捉到它)

【讨论】:

  • 感谢 Eyal,这正是我想要的,非常感谢!
  • 很高兴我能帮上忙 :)
猜你喜欢
  • 1970-01-01
  • 2011-10-20
  • 1970-01-01
  • 2014-07-05
  • 2013-01-22
  • 1970-01-01
  • 2015-12-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多