Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/476.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 部分禁用全屏iOS web应用中的滚动反弹_Javascript_Html_Css_Mobile Safari - Fatal编程技术网

Javascript 部分禁用全屏iOS web应用中的滚动反弹

Javascript 部分禁用全屏iOS web应用中的滚动反弹,javascript,html,css,mobile-safari,Javascript,Html,Css,Mobile Safari,有人能帮我解决以下问题吗 我有一个简单的全屏web应用程序(针对iOS和mobile safari),它包括一个标题和一个可滚动列表 我申请了: overflow: scroll; -webkit-overflow-scrolling: touch; 对于可滚动元素,我应用了以下javascript: document.addEventListener("touchmove", function (e) { e.preventDefault(); }, false); var the

有人能帮我解决以下问题吗

我有一个简单的全屏web应用程序(针对iOS和mobile safari),它包括一个标题和一个可滚动列表

我申请了:

overflow: scroll;
-webkit-overflow-scrolling: touch;
对于可滚动元素,我应用了以下javascript:

document.addEventListener("touchmove", function (e) {
    e.preventDefault();
}, false);

var theWrapper = document.getElementById("wrapper");
theWrapper.ontouchmove = function(e){
  console.log(e);
  e.stopPropagation();
  e.stopImmediatePropagation();
    // e.preventDefault();
};
试图防止滚动反弹发生

这在一定程度上是成功的,因为如果你尝试从标题滚动,赠品web应用程序不会反弹,但如果你将列表滚动到最末端(即,在列表顶部时向上滚动,或在列表底部时向下滚动),滚动的东西似乎会冒出气泡,整个应用程序都会滚动反弹

我已经在JS-Bin上做了一个演示,这样你就可以自己体验这种行为了(对不起,只适用于iPhone/iPad,它在桌面浏览器上正常工作*):

将演示添加到iphone主屏幕以获得最佳效果

非常感谢您能提供的任何帮助。这真的令人沮丧,我相信这一定是一个常见的问题


*事实上,刚刚更新到山狮和最新的Safari,其行为与现在的移动Safari相同。如果您使用“触摸板上的两个手指滚动”,则是相同的。如果您尝试在列表处于极限时滚动,它会“反弹”。

我手头没有任何触摸设备可以提供足够好的webkit,但您是否尝试添加“e.cancelBubble=true;”


或者可以结合使用捕获和气泡阶段事件监听器以及stopPropagation进行播放。

谢谢@miko。似乎cancelBubble已经被弃用了:赞成e.stopPropagation()。无论如何我都试过了,但不幸的是没用。