Ionic 2 - 如何禁用滚动

时间:2017-03-02 15:23:06

标签: javascript html css ionic-framework ionic2

首先:我知道有一些关于此的话题,但它们似乎都没有帮助我。

我尝试了一些我可以找到的方法来禁用我的某个页面上的滚动,但是没有一个能够工作,所以我来这里寻求帮助。

我尝试了什么:

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

这就是我的页面看起来......

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

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

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

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

2 个答案:

答案 0 :(得分:3)

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

http://output.jsbin.com/xatidu/4/&lt; - 工作版

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;  
}

答案 1 :(得分:2)

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

在某些特殊情况下,您可以通过禁用滚动来隐藏该空白区域,但这不是您应该如何解决此问题。
相反,您应该删除空白区域。您可以通过应用

来完成
display: block;

......或......

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

到您的<img>元素。

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

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