WebKit翻译+修复后台附件错误

时间:2013-06-03 16:55:23

标签: css css3 google-chrome webkit

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');
}

见上面的小提琴。我在我正在研究的项目中使用类似的结构。这是一个包含交替部分的页面,一个用于内容,另一个用作具有覆盖和固定背景图像的分隔符。

工作正常,但出于某种原因,将translate应用于具有固定背景或其父级的元素时,背景会完全消失或留下一些工件和图像的一部分。

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

提前致谢!

3 个答案:

答案 0 :(得分: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');

    });
}  

答案 1 :(得分: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;
}

答案 2 :(得分:1)

我的网站遇到了同样的问题:Google Translator推送了网页内容,但没有推出正文的背景图片。这就是我解决它的方法:

我刚添加了一个带背景图片的新空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/看到此工作 希望这很有用。

Andreas(ahuber@viamodul.pt)