Safari CSS Transition闪烁

时间:2014-07-29 07:38:31

标签: html css css3 safari transform

我的网页存在问题,我正在处理。在Firefox上它似乎没有任何问题。

我有两个元素,水平滚动,带有背景图像,这两个元素之间的过渡是使用CSS3 transformX()制作的。首先,这两个元素叠加(以便您可以看到第二个元素的背景图像),当您单击右箭头时,第二个元素从前向右滑动。当您单击右侧时,第一个元素从左向右滑动

当我回到第一个元素时,第二个元素会闪烁,就像重新排列它的位置一样。

.first-container.first-container1 {
    background: transparent url('../img/backgrounds/first1-background.jpg') no-repeat center center;
    background-size: cover;
    left: 0;
}
.first-container.first-container2 {
    background: transparent url('../img/backgrounds/first2-background.jpg') no-repeat center center;
    background-size: cover;
    left: 100%;
}


.bs-first .first1 .first-container.first-container2 {
    -webkit-transform: translateX(-8.5%);
    -moz-transform: translateX(-8.5%);
    -o-transform: translateX(-8.5%);
    -ms-transform: translateX(-8.5%);
    transform: translateX(-8.5%);
}

.first2 .first-container.first-container1 {
    -webkit-transform: translateX(8.5%);
    -moz-transform: translateX(8.5%);
    -o-transform: translateX(8.5%);
    -ms-transform: translateX(8.5%);
    transform: translateX(8.5%);
    z-index: 9;
}

我真的可以用一些提示来解决这个问题。谢谢!

2 个答案:

答案 0 :(得分:3)

您可以尝试-webkit-backface-visibility: hidden;应用于已应用css转换的元素。

在您的情况下,如果您使用的背景图片不起作用,那么只需创建一个类并应用它:

.stop-flickering {-webkit-transform:translate3d(0,0,0);}

你也可以尝试:

-webkit-transform-style: preserve-3d;

答案 1 :(得分:0)

就我而言,这些方法均无效:

-webkit-transform:translate3d(0,0,0);

-webkit-backface-visibility: hidden;

-webkit-transform-style: preserve-3d;

我在一个空的div上创建了一个动画来创建跳动的圆,解决方案是使用伪元素:before,并且闪烁消失了