[cancelable为false时如何防止touchmove从默认操作

问题描述 投票:0回答:1

我写了一些代码,发生了一些问题,有人可以帮忙吗?

 var obj=....;
 obj.addEventListener("touchmove",function(event){
      ....
      ....
       if(event.cancelable){
              if(event.preventDefault){   
                    event.preventDefault();  
                    event.stopPropagation();  

              }else{   
                    event.cancelBubble=true;  
                    event.returnValue=false;  
              } 
       }

},{ passive: false });

我想防止页面在移动设备上滚动,但是由于无法取消'touchmove'事件,因此代码无法在新版Chrome上运行。然后我使用obj.style.touchAction =“ none”,当我启动一个新的touchevent时它确实起作用,但是当这样时它不起作用

 var obj=....;
 obj.addEventListener("touchmove",function(event){
      ....
      ....
      var top=parseInt(obj.offsetTop);
      if(top>300){
         obj.style.touchAction="none";
      }

},{ passive: false });

当我滚动一些像素时,obj的内联样式更改为以下样式=“ touch-action:none;”,但是令人惊讶的是,如果我不从屏幕上移开手指,仍然可以滚动obj 。因此,当我滚动到特定像素时,如何防止移动设备表单滚动。英语不好,为此而苦恼。

javascript css touch preventdefault touchmove
1个回答
0
投票

不好的英语,抱歉,,,,,

© www.soinside.com 2019 - 2024. All rights reserved.