3

我正在尝试禁用导航滑动。当用户向左或向右滑动时,我不希望网页后退或前进。

我注意到我们可以在 html 元素上将 touch-action 设置为 none 以防止该行为。然而,当滚动一个有一些溢出的子元素时,它会“链接”滚动,然后允许向后导航。

所以我想在 html 元素上添加 -ms-scroll-chaining: none ,但它只有在元素滚动时才有效。因此,在 html 上添加溢出:滚动实际上可以解决问题。但是现在我的其他浏览器上显示了滚动条。

这样做的正确方法是什么?

    html {
        -ms-touch-action: none; /* Doesn't work if scrolling from child element */
        -ms-scroll-chaining: none; /* Works only with the next line */
        overflow: scroll; /* With this line all the other browsers have a scrollbar */
    }
4

2 回答 2

4

我用这个:

@media screen and (-ms-high-contrast: none) {
    // Windows 8+ IE only
    html {
        overflow-x: scroll;
        -ms-touch-action: none; 
        -ms-overflow-style: none;
        -ms-scroll-chaining: none; 
    }
}
于 2014-01-07T14:55:14.530 回答
0

你有没有尝试过

body, html {
   -ms-touch-action:none;
}

并且对于每个可以滚动的类(Y轴)都适用

-ms-scroll-chaining: none;

在我的项目中,我们有专门的课程来滚动舒适的内容:

.scroll-y {
    overflow-y: auto;
    overflow-x: hidden;
    -ms-scroll-chaining: none;
}

为我工作

于 2013-11-05T07:41:56.893 回答