滚动版仅适用于Android Chrome

时间:2014-10-28 14:55:03

标签: javascript android css google-chrome

由于某些原因,滚动功能仅适用于Chrome浏览器中的Android设备。

您可以在Peshkuiarte.com/mobile

上看到该网站

我试过了:

    $(document).ready(function() {
      $('body').css('touch-action', 'auto');
  });

我似乎无法弄清楚......任何帮助都会非常感激

7 个答案:

答案 0 :(得分:4)

我们在Chrome 40.0上遇到了同样的问题...我们修复了仅使用css的解决方案。也许它不干净但对我们有用:

@media screen and (max-width: 1024px) {
    html, body {
        z-index: 0 !important;
        overflow: scroll !important;
    }
}

答案 1 :(得分:4)

就我而言,我在touch-action: none元素上添加了body。 删除它可以在android chrome中滚动。

  

摘要

     

touch-action CSS属性指定是否和   什么方式,用户可以操纵给定区域(for   例如,通过平移或缩放)。

来源: https://developer.mozilla.org/en-US/docs/Web/CSS/touch-action

希望它可以帮助人们处理遗留代码:)

答案 2 :(得分:3)

通过滚动,您的意思是用手指在移动设备上拖动页面吗?

您已将-webkit-user-drag: none;设置为正文的内联样式,这可能是原因。

它是特定于Webkit的属性:

  

CSS属性:-webkit-user-drag

     

描述

     

指定整个元素应该是可拖动的而不是其内容。

     

语法

-webkit-user-drag: auto | element | none;
     

     
      
  • auto使用默认的拖动行为。

  •   
  • element整个元素都是可拖动的,而不是其内容。

  •   
  • none根本无法拖动元素。

  •   

Chrome 1-17和Safari 3-5.1支持:http://www.browsersupport.net/CSS/-webkit-user-drag

答案 3 :(得分:2)

e.preventDefault

function handlerSwipe(e){
  e.preventDefault();
  if(handlerTouch){
    if(e.changedTouches[0].clientX>=110)
    toggle.checked=true;
    else toggle.checked=false;
  }
  return false;
  }
  window.addEventListener("touchmove", handlerSwipe, false);

这是我用于创建可滑动导航抽屉的代码,因为此滚动无法正常工作。从上面的代码中移除e.preventDefault();解决了我的问题

答案 4 :(得分:1)

我不确定这个问题,你说“滚动”但接受的答案是谈论“拖动”。所以我打算告诉你我想你想要的东西(不能在移动设备的某个区域内滚动)。

最简单的解决方案是CSS而不是JS。如果页面上有一个需要滚动的区域,例如科技博客上的代码块,您可以在该区域设置相对位置,并将overflow-x设置为auto。当你触摸屏幕时,你需要让它不动。

pre { white-space: pre-wrap; overflow-y: auto; position: relative; }

html,body{ position: absolute; top: 0; left: 0; right: 0; bottom: 0; } 如果您查看代码段部分并尝试通过chrome mobile滚动它们,您可以在我的博客上看到此解决方案。(http://fullstack.life/mapping_arrays.html

答案 5 :(得分:1)

<强>指针事件

我今天遇到了另一个问题,我将把它留在这里作为参考。如果具有overflow-y: scroll;的元素设置其pointer-events: none;或继承它,那么它也不会工作。在此图层上,需要使用以下命令重新启用指针事件:

pointer-events: auto;

答案 6 :(得分:1)

这是对我有用的解决方案。

当您在javascript类中调用niceScroll函数$("body").niceScroll();时,它似乎在body元素上添加了一个内联样式:overflow-y: visible(因为它是内联的,所以它将覆盖以前的任何{{1 }},可能是您在CSS文件中写的。

只需在您的 body 元素的CSS中添加overflow: hidden

还要确保您的 html 元素的样式为

overflow: hidden ! important