css - 过渡期间闪烁的固定背景

标签 css transition fixed flicker translate3d

在转换过程中,我的固定背景出现问题。我有 2 个面板,面板 1 有 2 个图像,分别从左到右和从右到左设置动画,基本上它只会添加一个“动画”类来触发过渡。在过渡期间,panel-2(具有固定背景和一些文本内容)将在 chrome 中闪烁。欢迎查看直播http://jsfiddle.net/7EqaV/embedded/result/

有什么建议吗?提前致谢!..

HTML代码:

<div class="wrapper">
<input type="button" value='animate' id="animate" />
<div class="panel-1">
    <div class="items" id="slideLeft">
        <img src="http://sitetest12302.businesscatalyst.com/images/p1.jpg">
    </div>
    <div class="items" id="slideRight">
        <img src="http://sitetest12302.businesscatalyst.com/images/p2.jpg">
    </div>
</div>
<div class="panel-2">
    <div class="bg"></div>
    <div class="content">
            <h1>Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna</h1>

    </div>
</div>

CSS 代码:

    .wrapper {
    width:500px;
    margin:auto;
}
.panel-1, .panel-2 {
    width:100%;
    height: 200px;
    border: 2px solid #000;
    position:relative;
}
.panel-2 .bg {
    width:100%;
    height: 200px;
    background:url(http://sitetest12302.businesscatalyst.com/images/bg.jpg) no-repeat;
    background-size:cover;
    background-attachment: fixed;
    position: absolute;
    background-position:center;
}
.items {
    width:150px;
    height:150px;
}
.content {
    position:absolute;
    z-index:2;
    width:100%;
}
h1 {
    filter:alpha(opacity=0);
    -moz-opacity:0;
    opacity: 0;
    transition: opacity 1s ease-in-out;
    -moz-transition: opacity 1s ease-in-out;
    color:#FFF;
    font-size:15px;
}
#slideLeft, #slideRight {
    -webkit-transition:-webkit-transform 1s 0s;
    -moz-transition: -moz-transform 1s 0s;
    width:150px;
    height:150px;
}
#slideLeft {
    float:left;
    -webkit-transform:translate3d(-200%, 0, 0);
    -moz-transform:translate3d(-200%, 0, 0);
}
#slideRight {
    float:right;
    -webkit-transform:translate3d(200%, 0, 0);
    -moz-transform:translate3d(200%, 0, 0);
}
.animate #slideLeft, .animate #slideRight {
    -webkit-transform:translate3d(0, 0, 0);
    -moz-transform:translate3d(0, 0, 0);
}
.animate h1 {
    filter:alpha(opacity=100) !important;
    -moz-opacity:1 !important;
    opacity: 1 !important;
}

JS代码:

$(document).ready(function () {
    $('input#animate').click(function () {
        $('.panel-1, .panel-2').toggleClass('animate');
    });
});

最佳答案

你好!

尝试使用这个 css:

-webkit-backface-visibility: hidden;
/*  will not work for sprites and image backgrounds */

body {-webkit-transform:translate3d(0,0,0);}
/* screws up backgrounds that are tiled  */

我想你创建一个名为 noflick 的类和这个 css

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

希望对您有所帮助。

关于css - 过渡期间闪烁的固定背景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19781394/

相关文章:

jquery - 导航与CSS过渡

javascript - 将页面分成两部分并向相反方向滚动两部分

html - 为子元素集定义规则

使用面板和页面转换的 Jquery Mobile 故障

html - 修复了带有响应式垂直文本的侧边栏

ios - iOS8 上的新固定位置错误

html - CSS 位置 : fixed

html - 有没有办法使用 CSS 设置 iframe 内容的样式?

wpf - VisualStateManager 没有像宣传的那样工作

javascript - 在页面中使用加载器???没有jQuery吗?