如何使用用户控制的切换(启用/禁用)在 iOS 设备(iPad、iPhone、Mac)上禁用滚动/滚动[重复]

2024-04-21

在 StackOverflow 上查看有关此主题的许多问题和答案时,所提供的解决方案都没有可靠地工作。所有 CSS、JavaScript、jQuery 和混合解决方案都至少有一个缺陷,导致滚动无法有效禁用和/或切换。

我也在网上广泛搜索,但没有找到好的答案。

到目前为止我有这个功能:

function toggleScroll(btn, item) {
 $(btn).click(function() {
  $(item).toggleClass("noscroll");
 });
}

...这将添加一个overflow: hidden;去任何我想要的课程onclick,然后在第二次单击时将其删除。

问题是,此代码不适用于 iOS 设备。

我如何才能在 iOS 设备上实现此功能?

理想情况下,我更喜欢纯 CSS 解决方案。但我知道这可能是不可能的,尤其是切换组件。

任何 JavaScript 或 jQuery 解决方案都可以。

提前致谢!


使用 jQuery 在 iOS 设备(iPad、iPhone、Mac)上禁用滚动/滚动

我认为这会让你更接近你想要的。唯一的问题可能是切换按钮,它有两个按钮(启用和禁用)。如果您想将切换设置为单个按钮,也许您可​​以发布一个单独的问题,或者其他人可以改进这个答案。 (我主要是一个 HTML / CSS / PHP 人员。我对 JS 有点陌生)。

var disableScroll = false;
var scrollPos = 0;
function stopScroll() {
    disableScroll = true;
    scrollPos = $(window).scrollTop();
}
function enableScroll() {
    disableScroll = false;
}
$(function(){
    $(window).bind('scroll', function(){
         if(disableScroll) $(window).scrollTop(scrollPos);
    });
    $(window).bind('touchmove', function(){
         $(window).trigger('scroll');
    });
});

credit: https://stackoverflow.com/a/17597303/3597276 https://stackoverflow.com/a/17597303/3597276


使用 CSS 在 iOS 设备(iPad、iPhone、Mac)上禁用滚动/滚动

对于在 iOS 设备上禁用滚动的纯 CSS 解决方案,请尝试以下选项:
(当然,这些没有切换开关。)

html, body {
    position: fixed;
}

html, body {
    position: relative;
    overflow: hidden;
}

body {
    position: fixed;
    overflow: hidden;
}

body {
    position: fixed;
    height: 100%;
    overflow: hidden;
    width: 100%;
}

以下是我读到的关于这个问题的一些帖子和文章。

  • 在 iPhone Web 应用程序中禁用滚动? https://stackoverflow.com/questions/2890361/disable-scrolling-in-an-iphone-web-application
  • 禁用网页上的所有滚动 https://stackoverflow.com/questions/17596938/disable-all-scrolling-on-webpage/17597303
  • iPhone Web App - 在 iOS8 中停止身体弹跳/滚动 https://stackoverflow.com/questions/25913089/iphone-web-app-stop-body-bounce-scrolling-in-ios8
  • ipad safari:禁用滚动和弹跳效果? https://stackoverflow.com/questions/7768269/ipad-safari-disable-scrolling-and-bounce-effect
  • iPhone Web App - 停止正文滚动 https://stackoverflow.com/questions/8488447/iphone-web-app-stop-body-scrolling
  • iOS Safari – 如何禁用过度滚动但允许可滚动 div 正常滚动? https://stackoverflow.com/questions/10238084/ios-safari-how-to-disable-overscroll-but-allow-scrollable-divs-to-scroll-norma
  • 在 iPhone/iPad 的 Safari 中启用/禁用滚动 https://coderwall.com/p/w_likw/enable-disable-scrolling-in-iphone-ipad-s-safari
  • iOS 防止在 body 上滚动 http://www.teamtownend.com/2013/07/ios-prevent-scrolling-on-body/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用用户控制的切换(启用/禁用)在 iOS 设备(iPad、iPhone、Mac)上禁用滚动/滚动[重复] 的相关文章

随机推荐