【发布时间】:2012-06-08 20:12:33
【问题描述】:
我一直在使用转换和过渡来创建没有 Javascript 的动画 UI 组件,并且非常喜欢结果,但我遇到了一个令人不安的问题,这似乎是 webkit 浏览器所独有的。
在我旋转过的元素上,跨越元素宽度 100% 的锚点只能在元素右侧 50% 处访问。
在 Firefox 中使用 -moz-transform 不存在此问题,但在 Chrome 和 Safari 中使用 -webkit-transform 可 100% 重现。
代码如下:
<!doctype html>
<html>
<head>
<title>webkit spincard test bed</title>
<style type="text/css">
#card-lists{
width:100%;
float:left;
}
#card-lists ul{
list-style:none;
}
#card-lists ul li{
width:230px;
height:236px;
}
.non-mobile #card-lists ul.card-list li .flipcard-container:hover .flipcard,
.non-mobile #card-lists ul.card-list li .flipcard-container.hover .flipcard{
-moz-transform: rotateY(180deg);
-webkit-transform: rotateY(180deg);
-moz-transform-style: preserve-3d;
-moz-transition: all 0s linear 0s;
-webkit-transform-style: preserve-3d;
-webkit-transition: all 0s linear 0s;
}
.non-mobile #card-lists ul.card-list li .flipcard{
-moz-transform: rotateY(0deg);
-moz-transition: all 0s linear 0s;
-webkit-transform: rotateY(0deg);
-webkit-transition: all 0s linear 0s;
width:230px;
height:236px;
}
.face {
position: absolute;
width: 100%;
height: 100%;
-moz-backface-visibility: hidden;
-webkit-backface-visibility: hidden;
}
.face.back {
background-color: #125672;
-moz-transform: rotateY(180deg);
-webkit-transform: rotateY(180deg);
}
.face.front {
background-color:#000;
}
</style>
</head>
<body class="non-mobile">
<div id="card-lists">
<ul class="card-list" id="cardes-list-total">
<li>
<div class="flipcard-container">
<div class="flipcard">
<div class="front face">
<a href="#">
<div style="width:100%; height:100%;">
</div>
</a>
</div>
<div class="back face">
<a href="#">
<div style="width:100%; height:100%;">
</div>
</a>
</div>
</div>
</div>
</li>
</ul>
</div>
</body>
</html>
任何人都可以提供任何帮助将不胜感激,因为我已经在这个问题上花费了大量时间。
【问题讨论】:
-
FWIW 我过去曾在 webkit 的转换元素中看到过文本超链接的错误(有时超链接根本不起作用)。所以你没疯
-
谢谢迈克尔。代码在其原始状态下要复杂得多,并且在将其缩减为演示问题所需的内容的过程中,我开始确信自己的理智。但这只是让我理智和无效,这仅比疯狂和无效要好一些。 ;)
标签: css webkit css-transitions css-transforms