【问题标题】:Ionic 2 - How do I disable scrollingIonic 2 - 如何禁用滚动
【发布时间】:2017-03-02 23:43:40
【问题描述】:

首先:我知道已经有一些关于这方面的话题,但似乎没有一个对我有帮助。

我尝试了所有我能找到的方法来禁用我的一个页面上的滚动,但它们都不起作用,所以我来这里寻求帮助。

我尝试了什么:

  • 创建一个隐藏溢出的 css 类(与 attr.noScroll 相同)
  • setScrollDisabled
  • 将 div 设置为离子固定
  • 离子含量无反弹
  • ::-webkit-滚动条
  • 溢出滚动=“假”

这就是我的页面的样子......

It has this white bar on the bottom of the screen when I scroll down

我只添加了一个背景图片,其宽度设置为 100% 和 height:auto (高度:100% 产生相同的白条)

作为参考,如果有帮助,这是我的代码

<ion-content>
  <img class="bgc" src="assets/background.png">
</ion-content>

【问题讨论】:

标签: javascript html css ionic-framework ionic2


【解决方案1】:

滚动事件无法取消。但是您可以通过取消这些交互事件来做到这一点: 鼠标和触摸滚动以及与滚动相关的按钮。

http://output.jsbin.com/xatidu/4/

var keys = {37: 1, 38: 1, 39: 1, 40: 1};

function preventDefault(e) {
  e = e || window.event;
  if (e.preventDefault)
      e.preventDefault();
  e.returnValue = false;  
}

function preventDefaultForScrollKeys(e) {
    if (keys[e.keyCode]) {
        preventDefault(e);
        return false;
    }
}

function disableScroll() {
  if (window.addEventListener) // older FF
      window.addEventListener('DOMMouseScroll', preventDefault, false);
  window.onwheel = preventDefault; // modern standard
  window.onmousewheel = document.onmousewheel = preventDefault; // older browsers, IE
  window.ontouchmove  = preventDefault; // mobile
  document.onkeydown  = preventDefaultForScrollKeys;
}

function enableScroll() {
    if (window.removeEventListener)
        window.removeEventListener('DOMMouseScroll', preventDefault, false);
    window.onmousewheel = document.onmousewheel = null; 
    window.onwheel = null; 
    window.ontouchmove = null;  
    document.onkeydown = null;  
}

【讨论】:

  • 我试过了,它有效!但上面的答案对于这个特定问题来说更清晰。虽然我会回到其他页面,但谢谢!
  • 很高兴我能帮上忙 :)
【解决方案2】:

要修复它,您应该了解导致它的原因,因此您可能想要read this


在某些特殊情况下,您可能可以通过禁用滚动来隐藏该空白区域,但这确实不是您应该解决此问题的方法。
相反,您应该只删除空白。你可以通过申请来做到这一点

display: block;

...或...

float: left;
width: 100%;
height: auto;

到您的&lt;img&gt; 元素。

作为替代方案,您可以将标记更改为:

<ion-content>
  <img class="bgc" src="assets/background.png"
/></ion-content>

【讨论】:

  • 谢谢,修复了它......如果我从一开始就这样做,我的“反”滚动 css 是否真的有效? (溢出-y:隐藏;)
  • 不。 "space" 是正确的内容,所以overflow:hidden; 不会隐藏它。 tabs + new lines + spaces 减少到一个空格。你的&lt;img&gt; 是一个词。您想要渲染单词之间的空格,对吗?浏览器呈现这些空间。请阅读我提供的链接,解释为什么会有这个空间。
  • 好的,感谢您的快速解答!我已阅读您的链接,现在我了解空间内容。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-04-23
  • 1970-01-01
  • 2020-02-25
  • 2020-10-23
  • 1970-01-01
  • 1970-01-01
  • 2016-09-11
相关资源
最近更新 更多