11

http://jsfiddle.net/MR94s/

.wrap {
    position: absolute;
    z-index: 777;
    top: 100%;
    left: 0;
    width: 100%;
    min-height: 100%;
    background-color: white;
    -webkit-overflow-scrolling: touch;
    -moz-transform: translateX(25%);
    -webkit-transform: translateX(25%);
    -o-transform: translateX(25%);
    -ms-transform: translateX(25%);
    transform: translateX(25%);
}

section {
    position: relative;
    width: 100%;
    display: table;
    height: 450px;
    border-bottom: 2px solid #E6EAED;
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
    padding: 20px;
    background-color: #333;
    background-repeat: repeat;
    background-position: center center;
    -webkit-background-size: 100%;
    -moz-background-size: 100%;
    -o-background-size: 100%;
    background-size: 100%;
    -webkit-background-size: cover;
    -moz-background-size: cover;
    -o-background-size: cover;
    background-size: cover;
    background-attachment: fixed;
    background-image: url('http://placekitten.com/600/600');
}

请参阅上面的小提琴。我正在从事的项目中使用类似的结构。这是一个具有交替部分的页面,一个用于内容,一个用作具有覆盖和固定背景图像的分隔器。

工作正常,但由于某种原因,当对具有固定背景或其父元素的元素应用平移时,背景完全消失或留下一些伪影和图像的一部分。

在任何其他浏览器中都可以正常工作。没有任何运气寻找解决方案,所以我希望有人可以帮助我解决这个问题。

提前致谢!

4

3 回答 3

4

我有同样的问题,只在 Chrome 中。这是我的解决方案:

// run js if Chrome is being used
if(navigator.userAgent.toLowerCase().indexOf('chrome') > -1) {
    // set background-attachment back to the default of 'scroll'
    $('.imagebg').css('background-attachment', 'scroll');

    // move the background-position according to the div's y position
    $(window).scroll(function(){

        scrollTop = $(window).scrollTop();
        photoTop = $('.imagebg').offset().top;
        distance = (photoTop - scrollTop);
        $('.imagebg').css('background-position', 'center ' + (distance*-1) + 'px');

    });
}  
于 2014-01-13T23:45:17.420 回答
3

尝试关闭backface-visibility您的动画元素,它是父元素。

.wrap {
    position: absolute;
    z-index: 777;
    top: 100%;
    left: 0;
    width: 100%;
    min-height: 100%;
    background-color: white;
    -webkit-overflow-scrolling: touch;
    -moz-transform: translateX(25%);
    -webkit-transform: translateX(25%);
    -o-transform: translateX(25%);
    -ms-transform: translateX(25%);
    transform: translateX(25%);
    -webkit-backface-visibility: hidden;
    -moz-backface-visibility:    hidden;
    -ms-backface-visibility:     hidden;
    -o-backface-visibility:     hidden;
    backface-visibility:     hidden;
}
于 2013-07-10T11:53:44.310 回答
1

我的网站也有同样的问题:谷歌翻译下推页面内容,而不是正文的背景图片。这就是我解决它的方法:

我刚刚添加了一个带有背景图像的新空 div

 <div class="BackgroundImageBody></div>

这是CSS

.BackgroundImageBody{
background: url('/WebRoot/Store/Shops/3077-120214/MediaGallery/design/fundo.jpg') repeat scroll 0% 0% #FFF !important;
height: 100%;
width: 100%;
position: absolute;
}

然后我使用 JavaScript $.ready(function() 将 div 附加到 Google 翻译器 div

<script type="text/javascript">
// <![CDATA[
(function($){
$.ready(function(){

$(".BackgroundImageBody").appendTo(".skiptranslate");

});
})(jQuery);
// ]]>
</script>

你可以在http://www.photostation.pt/看到这个工作, 希望这很有用。

安德烈亚斯 (ahuber@viamodul.pt)

于 2014-07-30T14:00:51.040 回答