iOS 滑动期间的离子渲染问题

Ionic rendering issue during swipe on iOS

在下面的视频中,正在向右滑动。在 header 部分,带有 All/Classes/Products 的工具栏滞后于背景图像的消失(有没有办法让背景图像跟随滑动?)黄色加号也移动了大约40px然后在落后于其余header的swipe/disappearance后消失。

我的 ion-header HTML 看起来像这样:

<ion-header #ionheader (touchstart)="swipe($event, 'start')" (touchend)="swipe($event, 'end')"> <!--[@slideDown]="downState"-->
  <ion-toolbar #clickme class="itemadspace" [@slideDown]="downState" no-padding> <!--[@slideDown]="downState"-->
    <!--<ion-item class="ad" no-padding no-lines>-->
    <div class="stylistview">
      <button class="stylistviewbutton" (tap)='switchView()' ion-button color="secondary">User View</button>
    </div>

    <!--</ion-item>-->
  </ion-toolbar>

  <div (tap)="loadPost()" class='pluscontainer' [@plusSlide]="downState">
    <ion-icon class='plussy' name="add"></ion-icon>
  </div>

  <div class="clickme" (tap)="toolClicked($event)">
    <ion-navbar  color="black" [@toolSlide]="toolbarState" id="iontoolbar"> <!--[@toolSlide]="toolbarState"-->
      <ion-icon class='custom-icon' name="play"></ion-icon>
      <button class="all toolbarstyle" #allF ion-button color="black" (tap)="all()">All</button>
      <button class="classes toolbarstyle" #classesFeed ion-button color="black" (tap)="products()">Classes</button>
      <button class="products toolbarstyle" #productsFeed ion-button color="black" (tap)="classes()">Products</button>
    </ion-navbar>
  </div>
</ion-header>

CSS:

ion-toolbar {
        div.toolbar-background {
            background-image: url('../img/tresemme.png') !important;
        background-repeat: no-repeat;
            background-size: cover;

        }
    }

.itemadspace {
        z-index: 1;
        top: 0;
        left: 0;
        text-align: center;
        height: 88px;
    }

.pluscontainer {
        position: absolute;
        z-index: 2;
        right: 10px;
        top: 28px;
    }

.plussy {
        font-size: 72px;
        font-weight: 700;
        color: map-get($colors, primary);
        /*position: relative;*/
    }

.toolbarstyle {
        font-size: 12px;
        padding: 0 0.5em;
        color: gray;
        background-color: black;
    }

#iontoolbar {
        z-index: 1;
        position: absolute;
        top: 88px;
        left: 0;
        background-color: black;
        color: white;
        border-bottom-style: solid;
        border-bottom-color: map-get($colors, primary);
        border-bottom-width: 4px;
    }

感谢任何帮助,谢谢。

这里的问题是 #iontoolbar 和 .pluscontainer 都有 CSS 定位 absolute.

有时 运行 绝对定位元素和固定定位元素的转换会导致元素看起来好像滞后了。嵌套时它们变得更加不稳定。

老实说,我不知道为什么会发生这种情况的确切细节,但根据我自己的经验,这在移动 safari 中是最糟糕的。我建议您对 HTML 和 CSS 结构进行一些调整。在我看来,这些元素根本没有理由 position: absolute;,但可以通过相对定位轻松完成。

试一试并告诉我。