这是你要找的吗?在您的 iPhone 设备或模拟器上打开此链接。
index.html 文件在 body 正下方有“header”、“container”和“footer”三个 div 元素,而所有工作都在 fixed.js 文件中完成。通过取消“touchmove”事件的正常操作,将文档固定到位:
// Disable flick events
disableScrollOnBody : function() {
document.body.addEventListener("touchmove", function(e) {
e.preventDefault();
}, false);
},
然后,为附加到“container”下的“content”div 的“touchstart”、“touchmove”和“touchend”事件创建事件侦听器需要做很多工作。逻辑归结为简单地上下移动“内容”div。
这个解决方案是 100% HTML/CSS/JavaScript,但是有一些 WebKit 专有的 CSS 和 JavaScript 可能会限制可移植性。在另一台移动设备上工作可能需要一些调整,但这将是一个很好的概念验证开始。
我没有创建这个很棒的示例项目,我只是将它引起社区的注意。有关更多信息和压缩项目的链接,请阅读 Richard "Doctyper" Herrara 关于移动 Safari 中的固定定位的整篇文章。