Подтвердить что ты не робот

Исправлено положение фона на iOS

У меня есть веб-сайт с фиксированным фоном с полным изображением, который контент "плавает" выше. Он отлично работает в настольных браузерах, но фиксированный фон заканчивается прокруткой на iPad и других планшетах. Это, кажется, общая проблема, но затем я столкнулся с этим сайтом, который, кажется, имеет фиксированный фон даже на iPad.

http://confitdemo.wordpress.com/

Какую-нибудь подсказку, как они это снимают? Я пробовал:

#content-wrapper.posts-page {
background-attachment: fixed !important;
background-clip: border-box;
background-color: transparent;
background-image: url("image path");
background-origin: padding-box;
background-position: right top;
background-repeat: no-repeat;
background-size: cover;
}

(Это было скопировано из Firebug, поэтому оно не сокращается).

Но не повезло. Кто-нибудь заставляет меня указывать в правильном направлении?

4b9b3361

Ответ 1

Я думаю, что проблема заключается в том, что ваш стол, скорее всего, изменяет размер фона, поэтому, если вы добавите эти объявления, в наиболее вероятном колпаке он должен работать нормально.

background-attachment: fixed !important;
background-size: cover !important;

Edit:

Если это не работает только по другой причине, я могу подумать, что ios должен каким-то образом изменить размер тела, чтобы быть таким же большим, как контент, что вам нужно сделать, это создать div внутри тега body с правильными свойствами

#fixebg{
background: url(image.jpg) top;
height:100%;
width:100%;
position:fixed;
}

Вот аналогичное решение:

Как установить фиксированную позицию Фоновое изображение в jQuery mobile для iPhone с помощью Phonegap

Изменить - 2:

Добавлена ​​скрипка, которую вы можете проверить:

http://jsfiddle.net/uZRXH/3/

И вот ссылка, чтобы попробовать его на вашем ipad:

http://fiddle.jshell.net/uZRXH/3/show

Ответ 2

Этот веб-сайт использует трюк в мобильных браузерах, используя тот факт, что пока background-attachment: fixed не работает, position: fixed делает, поэтому в мобильных браузерах он просто создает <div>, который остается фиксированным за прокручиваемым контентом.

Ответ 3

ok, поэтому я уже построил этот сайт, часть с фиксированным фоном перепуталась бы, если бы я завернул его в div, чтобы дать этому div фиксированную позицию. Поэтому я написал это, и он работает на iPhone.

У меня есть фиксированный заголовок, поэтому он прост в использовании, но все, что всегда находится в верхней части окна просмотра, будет...

        if (//on mobile) {
            var headerH, headerH2, viewportH, sliderH, res
            viewportH = $(window).height(),
            headerH2 = 80 //correction when measuring with fixed header,
            $topheader = $('.top_header'),
            $slider = $('#twinslider') //the element to check for if in viewport;
            function getH() {
                headerH = $topheader.offset().top;
                sliderH = $slider.offset().top;
                res = (((headerH - headerH2) - sliderH) + viewportH) / viewportH;
                if (res > 0 && res < 1.4)  {
                    return res; // thats truthy and a value for further calculation
                } else {
                    return false;
                }
            }
            getH();

            setInterval(function(){ // before i listened to scroll, but this was better for performance
                if (getH()) {//if slider is in viewport
                    $slider.find('li').css({ //the element to set the background pos for
                        'background-position': 'center ' + res * 50 + '%'
                    }, 100);

                }                   
            }, 25); 

        }

а затем дать элементу дать "фиксированный фон" переход на фоновое положение, и все готово. Не так аккуратно, хотя.... и я чувствую, что там лучшее решение... но это работает.

Ответ 4

1) z-index: -1; должен быть добавлен к второму подходу Breezer, если у вас есть изображения ссылок, иначе изображения будут скрыты (за фоном)

2) На том же самом подходе я должен был поместить div перед остальной частью контента следующим образом, или страница не была прокручима, если содержимое добавлено внутри тегов div:

<body> <div id="fixedbg"></div> <!-- CONTENT HERE --> </body>