【发布时间】:2017-03-06 19:24:20
【问题描述】:
我有一个示例指令,当用户向上滚动时,标题会缩小...但是当向下滚动时,标题直到到达顶部才会出现......如何在向下滚动一段距离时改进代码,标题应该出现。
.ts:
import { Directive, ElementRef, Renderer } from '@angular/core';
@Directive({
selector: '[header-shrink]',
host: {
'(ionScroll)': 'onContentScroll($event)'
}
})
export class HeaderShrink {
header: any;
headerHeight: any;
translateAmt: any;
constructor(public element: ElementRef, public renderer: Renderer) { }
ngAfterViewInit() {
this.header = document.getElementsByClassName("shrinkable")[0];
this.headerHeight = this.header.clientHeight;
}
onContentScroll(ev) {
ev.domWrite(() => {
this.updateHeader(ev);
});
}
updateHeader(ev) {
if (ev.scrollTop >= 0) {
this.translateAmt = -ev.scrollTop / 4;
} else {
this.translateAmt =ev.scrollTop / 4;
}
this.renderer.setElementStyle(this.header, 'webkitTransform', 'translate3d(0,' + this.translateAmt + 'px,0)');
}
}
.html:
<ion-header class="shrinkable">
<ion-navbar>
<button ion-button menuToggle>
<ion-icon name="menu"></ion-icon>
</button>
<ion-title>
Jobs
</ion-title>
<ion-buttons end>
<button ion-button end icon-only (click)="presentPopover($event)">
<ion-icon name="more"></ion-icon>
</button>
</ion-buttons>
该指令并不完美..另外,当标题缩小时如何添加渐变项目
【问题讨论】: