WebKit translate + фиксированная ошибка привязки к фону
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');
}
См. Вышеупомянутую скрипку. Я использую аналогичную структуру в проекте, над которым я работаю. Это страница с чередующимися секциями, одна для контента и одна, действующая как разделитель с покрытием и фиксированным фоном.
Хорошо работает, но по какой-то причине при применении перевода к элементу с фиксированным фоном или его родительским фоном фон полностью исчезает или оставляет некоторые артефакты и части изображения.
Прекрасно работает в любом другом браузере. Не повезло найти решение, поэтому я надеюсь, что кто-то может мне помочь.
Заранее спасибо!
Ответы
Ответ 1
У меня была такая же проблема, только в 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 y position
$(window).scroll(function(){
scrollTop = $(window).scrollTop();
photoTop = $('.imagebg').offset().top;
distance = (photoTop - scrollTop);
$('.imagebg').css('background-position', 'center ' + (distance*-1) + 'px');
});
}
Ответ 2
Попробуйте отключить 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;
}
Ответ 3
У моего сайта была такая же проблема: 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;
}
Затем я добавил div в div-переводчик Google с помощью JavaScript $.ready(function()
<script type="text/javascript">
// <![CDATA[
(function($){
$.ready(function(){
$(".BackgroundImageBody").appendTo(".skiptranslate");
});
})(jQuery);
// ]]>
</script>
Вы можете видеть это, работая по адресу http://www.photostation.pt/ Надеюсь, это было полезно.
Андреас ([email protected])