ionic中ion-slide的高度问题,有经验的大哥们进来扫下盲

关于ionic中ion-slide-box的ion-slide的高度的一个问题;
比如说,我使用它做切换页面效果;但是每个页面高度都会自动默认为高度最高页面的高度,
这样体验效果就很差,该怎么解决?如何才能让每个ion-slide的高度不一样?
或者说,如何才能让每个ion-slide的高度为自动撑开的高度?

阅读 5.5k
3 个回答

遇到同样问题,坐等解决方案!

我按照自己的方法已经实现了。分享一下自己的实现思路。

每个slide的高度固定为100%;然后在slide内部声明ion-scroll。把内容放在ion-scroll中进行滑动。这样slide的高度就固定为一样高了。

    /**
     * html
     */
     <div class="col" ng-repeat="m in titlelist" ng-class="slectIndex==$index ? 'active' : '' " ng-click="select($index,true)">
    <span ng-bind="m.title"></span>
  </div>
<ion-slide-box auto-play="false" does-continue="true" show-pager="false"
                     on-slide-changed="winnerTabChange($index)" delegate-handle="winnerProductTab">
   <ion-slide  class="myOrderList">
        <div ng-show="show_0" >
            <!--这里面是你想写的html-->
        </div>
    </ion-slide>
    <ion-slide  class="myOrderList">
        <div ng-show="show_1" >
            <!--这里面是你想写的html-->
        </div>
    </ion-slide>
    <ion-slide  class="myOrderList">
        <div ng-show="show_2" >
            <!--这里面是你想写的html-->
        </div>
    </ion-slide>                              
</ion-slide-box>


    /**
     * controller.js
     */

    /**
     * 默认第一个显示
     */
    $scope.show_0 = true;
    $scope.show_1 = false;
    $scope.show_2 = false;
    
    /**
     * 导航栏的标题
     */
    $scope.titlelist = [
      {
        title:'标题0'
      },
      {
        title:'标题1'
      },
      {
        title:'标题2'
      }
    ]
    
     $scope.select = function (index, isTrue) {
      //切换样式
      $scope.slectIndex = index;

      if (isTrue) {
        $ionicSlideBoxDelegate.$getByHandle('winnerProductTab').slide(index);
      }
    }
    
    /**
     * 切换slideBox
     * @param index 对应导航的内容
     */
    $scope.winnerTabChange = function (index) {
      //导航跟着内容切换
      $scope.select(index, true);
      for(var i=0;i<$scope.titlelist.length;i++) {
        if(index == i)
          eval('($scope.show_' + i + ' = true)');
        else
          eval('($scope.show_' + i + ' = false)');
      }
      $ionicScrollDelegate.scrollTo(0, 0, true);//上滚
    };
    
    是不是已经大功告成了?是的,确实可以的。但是你发现切换的不显示?.slider-slide在切的时候,会自带一个left值。不要修改全局的东西,所以我添加了一个类名:myOrderList(自定义);
    /**
    *  css 样式
    */
   .myOrderList.slider-slide {
        left: 0!important;
    }
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题