我试图阻止元素在 iphone 上的 safari 中滚动。我已经尝试过这里提到的解决方案: iPhone Safari: Scroll a list inside a html container 但我的列表很大,而且运行不顺畅。
我想到的是检测 onscroll 事件并重新定位元素,因此它位于视口的边界内。
但我找不到检测视口坐标的方法。有人可以帮忙吗?
谢谢。
我试图阻止元素在 iphone 上的 safari 中滚动。我已经尝试过这里提到的解决方案: iPhone Safari: Scroll a list inside a html container 但我的列表很大,而且运行不顺畅。
我想到的是检测 onscroll 事件并重新定位元素,因此它位于视口的边界内。
但我找不到检测视口坐标的方法。有人可以帮忙吗?
谢谢。
document.addEventListener(
'touchmove',
function touchMove(event) {
event.preventDefault()
},
false
);
看看iScroll。如果 is 不符合您的要求,您可以使用实现作为参考。我认为这样做的诀窍是既要做到这一点event.preventDefault()
, event.stopPropagation()
又要防止移动 safari 响应触摸事件。
iScroll 的诞生是因为移动 webkit(在 iPhone、iPod、Android 和 Pre 上)不提供在固定宽度/高度元素内滚动内容的本机方式。这种不幸的情况阻止了任何网络应用程序有一个位置:绝对页眉和/或页脚以及内容的滚动中心区域。
var viewport_x = window.pageXOffset;
var viewport_y = window.pageYOffset;