Использование фонового вложения: исправлено в сафари на ipad
Я ищу, чтобы воссоздать эффект, похожий на приложение популярной науки. В основном есть одно большое фоновое изображение, а затем поверх него есть HTML/CSS-слой. Когда пользователь прокручивает содержимое, фоновая позиция изображения должна оставаться на месте, а не прокручиваться.
Очевидно, что в "регулярном" браузере я бы использовал background-attachment: fixed, но это, похоже, не работает на ipad. Я знаю позицию: исправлено не работает, как вы могли бы ожидать по спецификации сафари - но есть ли способ достичь этого?
Ответы
Ответ 1
Вы можете использовать этот код, чтобы фиксированный фоновый слой взломал эту проблему.
#background_wrap {
z-index: -1;
position: fixed;
top: 0;
left: 0;
height: 100%;
width: 100%;
background-size: 100%;
background-image: url('xx.jpg');
background-attachment: fixed;
}
И поместите <div id="background_wrap"></div>
в <body></body>
<body>
<div id="background_wrap"></div>
</body>
Ответ 2
Мобильное сафари масштабирует весь ваш сайт вплоть до размера видового экрана, включая фоновое изображение. Чтобы добиться правильного эффекта, используйте свойство CSS -webkit-background-size для объявления размера фона:
-webkit-background-size: 2650px 1440px;
(подсказка для чата для комментатора Mac)
Ответ 3
Я считаю, что вы можете поместить фоновое изображение в div и установить z-index для отображения другого содержимого. Впоследствии вы можете использовать javascript для фиксации положения div, который содержит фоновое изображение.
Ответ 4
Развернув ответ Anlai выше, я обнаружил, что решение повторяло мое изображение, поскольку я прокручивал, а не фиксировал его. Если у кого-то еще была эта проблема, мой CSS для идентификатора background_wrap выглядит следующим образом:
#background_wrap {
z-index: -1;
position: fixed;
top: 0;
left: 0;
height: 100%;
width: 100%;
background-size: cover;
background-image: url('../images/compressed/background-mobile.png');
background-repeat: no-repeat;
background-attachment: scroll;
}
Просто изменил размер фона и фонового вложения, чтобы сделать изображение статическим.
Ответ 5
следующее решение в Css:
body {
background-image: url( ../images/fundobola.jpg );
background-position: top center;background-repeat:no-repeat;
background-size: 1900px 1104px;
overflow: -moz-scrollbars-vertical;
overflow-y: scroll;
}
--- не использовать ---- (причина: прокрутка отключена)
position: fixed
Решено в Ipad и iPhone
Ответ 6
Я не тот профессионал, но я решил эту проблему usin 'jquery.
Это довольно просто)
Вот код:
jQuery(window).scroll(function(){
var fromtop = jQuery(window).scrollTop();
jQuery(" your element ").css({"background-position-y": fromtop+"px"});
});