【发布时间】:2011-05-01 17:43:12
【问题描述】:
我有一个网站,它有一个固定的背景图像,我正在尝试适应 iPhone 和 iPad,因为图像不会保持静态。我尝试了各种包装器,但都没有运气;要么我不能以一种方式滚动,要么网站不能正确滚动(因为使用了动态 ajax)。所以我开始寻找是否有办法通过滚动页面来移动图像背景,我使用了以下方法:
$(document).bind('touchmove',function(e){
$('.background_image').css({top: $(document).scrollTop()});
$('.background_image img').css({top: $(document).scrollTop()});
console.log($('.background_image img').css('top'));
});
$(document).bind('scroll', function() {
$('.background_image').css({top: $(document).scrollTop()});
$('.background_image img').css({top: $(document).scrollTop()});
});
这似乎适用于第一次“触摸”,但背景不会持续移动。当我停止移动时,“滚动”绑定会启动并将图像移动到正确的位置。 这是一个可能的壮举,还是我试图在这里实现不可能?记录输出表明 css 确实正在更改,但屏幕并未随之更新。
更新
我不知道它是否有帮助,但这是我目前正在使用的 HTML/CSS:
<div class="background_image">
<img src="image.jpg" />
</div>
.background_image {
position: fixed;
left: 0px;
top: 0px;
overflow: hidden;
z-index: -1;
}
.background_image img {
position: fixed;
overflow: hidden;
top: 0px;
left: 0px;
background: white;
}
还将我的代码更改为更简单的代码。
干杯,
丹
【问题讨论】:
-
您是否尝试过将图像设为实际背景图像并仅更新该图像的 src? (即使用
background-image:url('image.jpg'); background-position:top center; background-repeat:no-repeat;)?请记住,position:fixed在 iOS 设备上不起作用(因为它们滚动的是视口,而不是文档)。 -
@ampersand - 我试过只使用背景图像标签,但图像在滚动时只是停留在同一位置,而不是保持在理想的视口内,这正是我所需要的。此外,每次页面更改时,我都会交叉淡化背景,因此它不是理想的解决方案(尽管如果它有效,我很乐意将其保留)
-
您能否发布一个示例链接来展示您的一些问题?
标签: javascript jquery iphone ipad