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;
,但可以通过相对定位轻松完成。
试一试并告诉我。