如何使用离子滚动并具有

时间:2016-05-01 14:32:02

标签: css angularjs ionic-framework

我有以下观点:

 <ion-view ng-controller="recentDetailCtrl as vm">
   <ion-content  class="has-header">
      <div  style="padding:0px;">
        <my-video  video-url='vm.videoUrl'
           player-width="'100%'" player-height="'180px'"></my-video> 
    </div>
    <ion-scroll>
      <ion-list>
        <ion-item ng-repeat="comment in vm.comments">
                {{comment.text}}

        </ion-item>
      </ion-list>
   </ion-scroll>
  </ion-content>
</ion-view>

我想要的是我的滚动评论列表,但始终固定视频元素(因此它会在视频下方滚动 - 类似于移动YouTube视频应用允许您滚动评论并修复播放视频)。

目前,当我滚动视频时,视频会向上移动。

5 个答案:

答案 0 :(得分:14)

您可以使用ion-fixed :( Ionic 3.5.0)

<ion-content no-padding>
  <div ion-fixed class="map"></div>
  <div ion-fixed class="test_class">
    <h4>Bla Bla</h4>
  </div>
  <ion-list>
  <ion-item>
     <p>Test</p>
  </ion-item>
 </ion-list>
</ion-content>

然后在css:

.map {
width: 100%;
overflow: hidden;
height: 30%;
}

.test_class {
width: 100%;
height: 30px;
top: 30%;
}

离子文献还没有参考这个。

答案 1 :(得分:12)

  1. 将您的视频指令移出离子内容(离子内容中的所有元素都将滚动)。
  2. 更改离子含量的css,使其不占据屏幕的上半部分。
  3. position:fixed和其他css添加到您的视频指令中,以便占据屏幕的上半部分。
  4. HTML:

    <html ng-app="ionicApp">
      <head>
        <meta charset="utf-8">
        <meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no, width=device-width">
    
        <title>Ionic Fixed Element at Top</title>
    
        <link href="//code.ionicframework.com/nightly/css/ionic.css" rel="stylesheet">
        <script src="//code.ionicframework.com/nightly/js/ionic.bundle.js"></script>
    
      </head>
      <body ng-controller="MyCtrl">
    
        <ion-header-bar class="bar-positive">
          <h1 class="title">Ionic Fixed Element at Top</h1>
        </ion-header-bar>
    
        <div class="fixed-header my-video">
           My fixed video content
        </div>
        <ion-content class="ion-content-below-my-video">
          <ion-list>
            <ion-item>1</ion-item>
            <ion-item>2</ion-item>
            <ion-item>3</ion-item>
            <ion-item>4</ion-item>
            <ion-item>5</ion-item>
            <ion-item>6</ion-item>
            <ion-item>7</ion-item>
            <ion-item>8</ion-item>
            <ion-item>9</ion-item>
            <ion-item>0</ion-item>
            <ion-item>1</ion-item>
            <ion-item>2</ion-item>
            <ion-item>3</ion-item>
            <ion-item>4</ion-item>
            <ion-item>5</ion-item>
            <ion-item>6</ion-item>
            <ion-item>7</ion-item>
            <ion-item>8</ion-item>
            <ion-item>9</ion-item>
            <ion-item>0</ion-item>
          </ion-list> 
        </ion-content>
    
      </body>
    </html>
    

    CSS:

    body {
      cursor: url('http://ionicframework.com/img/finger.png'), auto;
    }
    
    .fixed-header{
      margin-top:43px;
      /* 
       The ionic header bar is 43px in height,
       put your content below the header bar.
      */
    }
    
    .platform-webview.platform-ios.platform-cordova .fixed-header{
      margin-top:63px;
      /* On iOS, moving a div out of ion-content,
      I think you need to compensation for the 20px system status bar.
      so it's 43px+20px=63px. but I'm not so sure, it hasn't been tested.
      Test it yourself and make modifications if needed.
      */
    }
    
    .my-video
    {
      height:200px;
      width:100%;
      position:absolute;
      background:grey;
      color:red;
      text-align:center;
      padding:20px;
    }
    
    .ion-content-below-my-video{
      margin-top:200px!important;
    }
    
    .platform-webview.platform-ios.platform-cordova .ion-content-below-my-video{
      margin-top:220px;
      /*
      Same as .fixed-header
      */
    }
    

    代码笔在这里:

    http://codepen.io/KevinWang15/pen/QNJEXX

答案 2 :(得分:0)

现在离子属性slot中有一个。您可以这样使用它:

<my-video slot="fixed"></my-video>

此处在Ionic文档中已简短提及:
https://ionicframework.com/docs/api/content#slots

答案 3 :(得分:0)

在Ionic4中,可以为slot="fixed"的子级使用<ion-content>属性来实现此目的。

检查docs

答案 4 :(得分:0)

我有相同的用例。将视频内容移出离子内容可以解决问题。