mirror of
https://github.com/ionic-team/ionic-framework.git
synced 2025-08-20 20:33:32 +08:00
@ -5,6 +5,7 @@ import { Ion } from '../ion';
|
|||||||
|
|
||||||
import { UIEventManager } from '../../util/ui-event-manager';
|
import { UIEventManager } from '../../util/ui-event-manager';
|
||||||
import { isTrueProperty } from '../../util/util';
|
import { isTrueProperty } from '../../util/util';
|
||||||
|
import { nativeTimeout } from '../../util/dom';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @name FabButton
|
* @name FabButton
|
||||||
@ -126,14 +127,13 @@ export class FabButton extends Ion {
|
|||||||
*/
|
*/
|
||||||
@Directive({
|
@Directive({
|
||||||
selector: 'ion-fab-list',
|
selector: 'ion-fab-list',
|
||||||
host: {
|
|
||||||
'[class.fab-list-active]': '_visible'
|
|
||||||
}
|
|
||||||
})
|
})
|
||||||
export class FabList {
|
export class FabList {
|
||||||
_visible: boolean = false;
|
_visible: boolean = false;
|
||||||
_fabs: FabButton[] = [];
|
_fabs: FabButton[] = [];
|
||||||
|
|
||||||
|
constructor(private _elementRef: ElementRef, private _renderer: Renderer) { }
|
||||||
|
|
||||||
@ContentChildren(FabButton)
|
@ContentChildren(FabButton)
|
||||||
set _setbuttons(query: QueryList<FabButton>) {
|
set _setbuttons(query: QueryList<FabButton>) {
|
||||||
let fabs = this._fabs = query.toArray();
|
let fabs = this._fabs = query.toArray();
|
||||||
@ -150,18 +150,23 @@ export class FabList {
|
|||||||
if (visible === this._visible) {
|
if (visible === this._visible) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
this._visible = visible;
|
||||||
|
|
||||||
let fabs = this._fabs;
|
let fabs = this._fabs;
|
||||||
let i = 1;
|
let i = 1;
|
||||||
if (visible) {
|
if (visible) {
|
||||||
fabs.forEach(fab => {
|
fabs.forEach(fab => {
|
||||||
setTimeout(() => fab.setElementClass('show', true), i * 30);
|
nativeTimeout(() => fab.setElementClass('show', true), i * 30);
|
||||||
i++;
|
i++;
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
fabs.forEach(fab => fab.setElementClass('show', false));
|
fabs.forEach(fab => fab.setElementClass('show', false));
|
||||||
}
|
}
|
||||||
this._visible = visible;
|
this.setElementClass('fab-list-active', visible);
|
||||||
|
}
|
||||||
|
|
||||||
|
setElementClass(className: string, add: boolean) {
|
||||||
|
this._renderer.setElementClass(this._elementRef.nativeElement, className, add);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -184,7 +184,7 @@ export class UIEventManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function listenEvent(ele: any, eventName: string, zoneWrapped: boolean, option: any, callback: any): Function {
|
function listenEvent(ele: any, eventName: string, zoneWrapped: boolean, option: any, callback: any): Function {
|
||||||
let rawEvent = ('__zone_symbol__addEventListener' in ele && !zoneWrapped);
|
let rawEvent = (!zoneWrapped && '__zone_symbol__addEventListener' in ele);
|
||||||
if (rawEvent) {
|
if (rawEvent) {
|
||||||
ele.__zone_symbol__addEventListener(eventName, callback, option);
|
ele.__zone_symbol__addEventListener(eventName, callback, option);
|
||||||
return () => ele.__zone_symbol__removeEventListener(eventName, callback);
|
return () => ele.__zone_symbol__removeEventListener(eventName, callback);
|
||||||
|
Reference in New Issue
Block a user