【问题标题】:Implementing the Paper Flip Transition using CSS使用 CSS 实现纸张翻转过渡
【发布时间】:2019-02-24 13:09:37
【问题描述】:

我正在尝试使用 css 实现纸张翻转过渡,所以为了实现我需要的任务是:

  1. 我不得不将 div 从当前位置向左移动。我能够使用 translate 属性来实现它。
  2. 我还必须翻转 div。我能够使用 scaleX(-1) 实现它
  3. 最后我不得不把它翻转成曲线。

我怎样才能完成最后的部分?这是CSSDesk 的链接。我已经尝试使用 hover 进行翻转过渡。

【问题讨论】:

标签: html css hover flip


【解决方案1】:

我不知道这是否是您要查找的内容,但这里有一个简单的示例:

/* entire container, keeps perspective */
.flip-container {
	perspective: 1500px;
  margin: 0 auto;
  margin-top:100px;
}
	/* flip the pane when hovered */
	.flip-container:hover .flipper, .flip-container.hover .flipper {
		transform: rotateY(180deg);
	}

.flip-container, .front, .back {
	width: 320px;
	height: 480px;
}

/* flip speed goes here */
.flipper {
	transition: 0.6s;
	transform-style: preserve-3d;
  transform-origin: 100%;
	position: relative;
}

/* hide back of pane during swap */
.front, .back {
	backface-visibility: hidden;

	position: absolute;
	top: 0;
	left: 0;
}

/* front pane, placed above back */
.front {
  background-color:red;
	z-index: 2;
	/* for firefox 31 */
	transform: rotateY(0deg);
}

/* back, initially hidden pane */
.back {
  background-color:green;
	transform: rotateY(180deg);
}
<div class="flip-container" ontouchstart="this.classList.toggle('hover');">
	<div class="flipper">
		<div class="front">
           <p>FRONT</p>
		</div>
		<div class="back">
           <p>BACK</p>
		</div>
	</div>
</div>

实现3d效果的关键是perspective: 1500px; 这个例子是基于this amazing article 解释属性

【讨论】:

  • 感谢我试图实现类似turnjs.com 的答案。
  • 如果你想达到同样的效果,你应该使用这个插件
  • 我想做很多改变,而不仅仅是翻转,所以我试图只使用 css 来开发它。
  • 我认为仅使用 css 是不可能做到的。检查this codepen,它使用 jQuery 和另一个插件,但它似乎更可定制
猜你喜欢
  • 1970-01-01
  • 2012-02-18
  • 1970-01-01
  • 1970-01-01
  • 2019-03-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多