【问题标题】:Flip animation not working in Safari翻转动画在 Safari 中不起作用
【发布时间】:2015-08-15 08:50:09
【问题描述】:

我制作了一张动画头像,当悬停在它上面时会翻转并显示背面。它在 Firefox 和 Chrome 中完美运行,但在 Safari 中却不行。

它确实会翻转,但图像会变回正面,但朝向相反的方向。

这是我将鼠标悬停在其上 1 秒后看到的内容。 (这是正面,但水平翻转)

链接:http://www.ik-ben-zzp.nl/testsite/index.php

这是个人资料图片的 HTML CSS。

这里有什么问题?

谢谢

附言。在 Safari iPad 上测试

.roundedImage {
	overflow:hidden;
	width: 200px;
	height:200px;
	margin-left: auto;
	margin-right: auto;
    -webkit-animation:pop-in 0.8s;
    -moz-animation:pop-in 0.8s;
    -ms-animation:pop-in 0.8s;

}

.flip-container {
	perspective: 1000;
	z-index:3;
	margin-bottom:200px;
}
	
	.flip-container:hover .flipper, .flip-container.hover .flipper {
		transform: rotateY(180deg);
		-webkit-transform: rotateY(180deg);
   		-ms-transform: rotateY(180deg);
	}

.flip-container, .front, .back {
	width: 200px;
	height: 200px;
	margin-left:auto;
	margin-right:auto;
	
}


.flipper {
  transition: 0.6s;
  -webkit-transition: 0.6s;
  -ms-transition: 0.6s;
	transform-style: preserve-3d;
	-webkit-transform-style: preserve-3d;
	-ms-transform-style: preserve-3d;	
}


.front, .back {
	backface-visibility: hidden;
	position: absolute;
	top: 0;
	left: 0;
}


.front {
	transform: rotateY(0deg);
	-webkit-transform: rotateY(0deg);
    -ms-transform: rotateY(0deg);
}


.back {
	transform: rotateY(180deg);
	-webkit-transform: rotateY(180deg);
    -ms-transform: rotateY(180deg);
	}
	
.front div, .back div {
    -moz-border-radius: 100px;
    -webkit-border-radius: 100px;
    border-radius: 100px;
	-webkit-animation:pop-in 0.8s;
    -moz-animation:pop-in 0.8s;
    -ms-animation:pop-in 0.8s;
	border: 4px solid white;
}
<div class="flip-container" ontouchstart="this.classList.toggle('hover')">

<div class="roundedImage">

<div class="flipper">

<div class="front">
<div style="background: url(Images/ProfileFront.jpg); height:200px; background-size: cover;"></div>
</div>

<div class="back">
<div style="background:url(Images/ProfileBack.jpg); height:200px; background-size:cover;"></div>
</div>

</div>	<!--FLIPPER-->
</div>	<!-- ROUNDED IMAGE -->
</div> 	<!-- FLIP CONTAINER -->

【问题讨论】:

标签: html css


【解决方案1】:

为所有必要的 css 属性添加 -webkit- 前缀。您错过了“背面可见性”。

【讨论】:

  • 我遇到了同样的问题,我需要-webkit 的唯一属性是backface-visibility,这解决了所有问题。谢谢。
【解决方案2】:

去掉 ontouchstart="this.classList.toggle('hover');"在您的所有 div 中的 html 并添加下面的 javascript。您可以评论“return false”,以防您在“front”或“back to work”的 div 中有任何服务器端可点击项目

$('.flip-container').click(function(){
    $(this).find('.flipper').addClass('hover').mouseleave(function(){
        $(this).removeClass('hover');
    });
    return false;
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-11-27
    • 2023-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-06
    相关资源
    最近更新 更多