Javascript 如何使用用户控制的切换(启用/禁用)禁用iOS设备(iPad、iPhone、Mac)上的滚动/滚动
在回顾有关StackOverflow这个主题的许多问题和答案时,没有一个解决方案能够可靠地工作。所有CSS、JavaScript、jQuery和混合解决方案都至少有一个缺陷,使滚动无法有效禁用和/或切换 我也在网上到处搜索,没有找到一个好的答案 到目前为止,我有这个功能:Javascript 如何使用用户控制的切换(启用/禁用)禁用iOS设备(iPad、iPhone、Mac)上的滚动/滚动,javascript,jquery,html,ios,scroll,Javascript,Jquery,Html,Ios,Scroll,在回顾有关StackOverflow这个主题的许多问题和答案时,没有一个解决方案能够可靠地工作。所有CSS、JavaScript、jQuery和混合解决方案都至少有一个缺陷,使滚动无法有效禁用和/或切换 我也在网上到处搜索,没有找到一个好的答案 到目前为止,我有这个功能: function toggleScroll(btn, item) { $(btn).click(function() { $(item).toggleClass("noscroll"); }); } …这将添加一个溢
function toggleScroll(btn, item) {
$(btn).click(function() {
$(item).toggleClass("noscroll");
});
}
…这将添加一个溢出:隐藏
指向我想要的任何类单击
,然后在第二次单击时将其删除
问题是,这段代码不适用于iOS设备
我如何在iOS设备上实现这一点
理想情况下,我更喜欢纯CSS解决方案。但我知道这可能是不可能的,尤其是切换组件
任何JavaScript或jQuery解决方案都可以
提前谢谢 使用jQuery禁用iOS设备(iPad、iPhone、Mac)上的滚动 我想这会让你接近你想要的。唯一的问题可能是切换,这是两个按钮(启用和禁用)。如果你想让切换成为一个单一的按钮,也许你可以发布一个单独的问题,或者其他人可以改进这个答案。(我基本上是一个HTML/CSS/PHP的家伙。我对JS有些陌生) 学分:
使用CSS禁用iOS设备(iPad、iPhone、Mac)上的滚动 对于在iOS设备上禁用滚动的纯CSS解决方案,请尝试以下选项:
(当然,这些选项没有切换。)
以下是我在这个问题上读到的一些帖子和文章
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');
});
});
html, body {
position: fixed;
}
html, body {
position: relative;
overflow: hidden;
}
body {
position: fixed;
overflow: hidden;
}
body {
position: fixed;
height: 100%;
overflow: hidden;
width: 100%;
}