在移动浏览器上禁用框架滚动

时间:2018-08-23 19:48:09

标签: javascript css mobile

我正在尝试解决移动设备上的问题,即呈现内容的框架与屏幕上的可见空间不同。 More info on that

大多数情况下,我都有使用某些CSS和此JS的修复程序(demo):

var setProps = function() {
  var overflow = document.body.scrollHeight - window.innerHeight;

  document.querySelector('html').style.setProperty('--screen-overflow', overflow + 'px');
}

var noGo = function(event) {
  window.scrollTo(0, 0);
  event.preventDefault();
  event.stopPropagation();
}

window.addEventListener('scroll', function(event) {
  setProps();
  noGo(event);
});

window.addEventListener('touchmove', function(event) {
  setProps();
  noGo(event);
});

window.onresize = setProps;

您会发现一些我不太喜欢的地方。尤其要注意touchmovescroll并将其暂停。当您在iOS上进入最底端时,它在横向模式下口吃非常困难。

我正在尝试一种更好的方式来禁用滚动。如果我能摆脱闪烁,我会很高兴。

0 个答案:

没有答案