设置背景图固定,滚动内容时背景图不滚动。在android上是没有问题的,但是ios上就是会被内容挤出去,滚动的时候背景图变形。通过background-attachment: fixed;和定位的方法实现或还是会出现图片变形,或者盒子被撑大。
iphone失效相关原因:固定背景导致重绘的成本很高,并且滚动表现也不尽人意,所以在一些移动端是被禁止的。
背景图如果直接写死是没有问题的,动态绑定添加的就有问题。
最终采用动态添加::before伪元素样式实现图片的固定布局。
效果图:
代码:
html,body{
margin:0;
padding:0;
}
.bg:before {
content: ' ';
position: fixed;
z-index: -1;
top: 0;
right: 0;
bottom: 0;
left: 0;
background-size: cover;
}
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
1212
setTimeout(()=>{
$('.bg').append("");
},500);