如何停止在移动设备上滚动以及为什么翻译似乎停止了?

时间:2014-11-17 07:47:10

标签: css mobile drag

请使用移动设备查看:

http://jsfiddle.net/stratboy/tk6ztzku/1/

这是我正在建造的一个offcanvas原型。请原谅我杂乱无章的css:它是带导入的scss的编译版本。还缺少导入的字体。

无论如何,它有效。红色按钮打开子菜单。但是在移动设备上有一个问题:在打开子设备之前,您可以“滚动”或更好地拖动菜单左/右。打开子菜单后,它工作正常(意味着你不能向左/向右拖动,只能向上/向下拖动)。

所以,也许有一些东西让它停下来,我想找出并用它来阻止从一开始就横向拖动。在代码上没有什么特别之处:js只是添加/删除类(它基本上和几乎纯粹的css offcanvas),而类只是添加翻译:

  &.submenu .menu-box{
    @include translate(-$off_canvas_width, 0);
    @include translate3D(-$off_canvas_width, 0, 0);
  }

(虚拟代码,否则他们不允许我添加jfiddle链接)

我尝试使用零翻译初始化.menu-box但不起作用。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

行。这只是一个部分答案,我仍然想知道如何真正阻止移动设备上的横向拖动。

无论如何,翻译的事情并非如此:它不会阻止任何事情,它会因其他原因而停止。

为了解决我的问题,我简单地消除了横向滚动的真正原因:内容溢出。所以我基本上隐藏了init上的所有子菜单(第34行):

this.submenus.hide();

(对不起,我必须添加一些虚拟代码来添加jfiddle链接......)

工作版本如下:

http://jsfiddle.net/stratboy/tk6ztzku/4/

请注意,我还在主体中添加了一个无滚动类,但这与原始问题无关:它只是为了防止在菜单滚动结束时滚动主体。

测试了最新的chrome,firefox,safari,android 4.x,最新的ios,即9-11