如何在离子滑动框中进行垂直滚动

时间:2014-10-13 16:38:08

标签: ionic-framework

我想在问卷的各个部分之间横向滑动。每个部分都有一个标题和一些已回答的问题。我想在问题上添加垂直滚动,但无法弄清楚如何使其正常工作。以下是我的观点:

  <ion-view title="{{vm.title}}">
    <ion-slide-box show-pager="true" class="has-header">
        <ion-slide ng-repeat="s in vm.sections">
            <ion-item class="item-royal">
                {{s.Heading}}
            </ion-item>
            <ion-scroll>
                <div class="card" ng-repeat="q in s.Questions">
                    <div class="item item-divider">
                        {{q.Text}}
                    </div>
                    <div class="item">
                        {{q.Answer}}
                    </div>
                </div>
            </ion-scroll>
        </ion-slide>
    </ion-slide-box>
</ion-view>

4 个答案:

答案 0 :(得分:8)

我找到了一个解决方案,解决了我遇到的具体问题,但创建了另一个问题。我在离子滚动中添加了一个div,并在离子滚动和新div上设置了高度:

<ion-scroll style="height:300px">
    <div style="height:100%">
        <div class="card" ng-repeat="q in s.Questions">
            <div class="item item-divider">
                {{q.Text}}
            </div>
            <div class="item">
                {{q.Answer}}
            </div>
        </div>
    </div>
</ion-scroll>

这会导致两个问题:

  1. 我不想以像素为单位指定离子滚动的高度 - 我希望它能填充窗口中的剩余空间。

  2. 寻呼机出现在滚动窗口的前面 - 我希望它出现在下方。

  3. 编辑然后我找到了第二个解决方案:

     <ion-view title="{{vm.title}}">
            <ion-slide-box show-pager="true" class="has-header" 
                           style="position:absolute; bottom: 0;left: 0;right: 0; ">
                <ion-slide ng-repeat="s in vm.sections">
                    <ion-item class="item-royal">
                        {{s.Heading}}
                    </ion-item>
                    <ion-content>
                        <div class="card" ng-repeat="q in s.Questions">
                            <div class="item item-divider">
                                {{q.Text}}
                            </div>
                            <div class="item">
                                {{q.Answer}}
                            </div>
                        </div>
                    </ion-content>
                </ion-slide>
            </ion-slide-box>
        </ion-view>
    

    所做的更改

    1. ion-slide-box的样式设置为position:absolute; bottom: 0;left: 0;right: 0;(顶部已由has-header类指定)

    2. 在我想要滚动的部分周围使用离子内容而不是ion-scrolldiv

    3. 住在前面的寻呼机。它看起来很好!

    4. 编辑2 如果您的旧Android设备出现滚动问题,我还建议您使用Crosswalk

答案 1 :(得分:0)

对于离子2,您需要使用<ion-slides><ion-slide-box>已被弃用。

答案 2 :(得分:0)

我已经通过简单的CSS解决了这个问题:

离子滑动{高度:初始; }

答案 3 :(得分:0)

对于Ionic 4,请使其在某些CSS中垂直滚动。

<ion-slide><div class="scrollVertically">stuff to scroll...</div></ion-slide>

.scrollVertically{
  overflow: auto;
  height: 100vh;
}