mirror of
https://github.com/ionic-team/ionic-framework.git
synced 2025-08-19 03:32:21 +08:00
fix(aside): tap on content. Fixes #78
This commit is contained in:
@ -33,5 +33,6 @@ export class AsideToggle {
|
|||||||
*/
|
*/
|
||||||
toggle(event) {
|
toggle(event) {
|
||||||
this.aside && this.aside.toggle();
|
this.aside && this.aside.toggle();
|
||||||
|
console.log('Aside toggle');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -121,10 +121,12 @@ $aside-shadow: -1px 0px 8px rgba(0, 0, 0, 0.2) !default;
|
|||||||
box-shadow: $aside-shadow;
|
box-shadow: $aside-shadow;
|
||||||
&.aside-open-left {
|
&.aside-open-left {
|
||||||
transform: translate3d($aside-width,0,0);
|
transform: translate3d($aside-width,0,0);
|
||||||
|
pointer-events: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
&.aside-open-right {
|
&.aside-open-right {
|
||||||
transform: translate3d(-$aside-width,0,0);
|
transform: translate3d(-$aside-width,0,0);
|
||||||
|
pointer-events: none;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -55,16 +55,24 @@ export class Aside extends Ion {
|
|||||||
this.opening = new EventEmitter('opening');
|
this.opening = new EventEmitter('opening');
|
||||||
|
|
||||||
//this.animation = new Animation(element.querySelector('backdrop'));
|
//this.animation = new Animation(element.querySelector('backdrop'));
|
||||||
|
this.contentClickFn = (e) => {
|
||||||
|
console.log('Click', this.isOpen, this.isChanging);
|
||||||
|
if(!this.isOpen || this.isChanging) { return; }
|
||||||
|
this.close();
|
||||||
|
};
|
||||||
|
|
||||||
let finishChanging = util.debounce(() => {
|
|
||||||
|
this.finishChanging = util.debounce(() => {
|
||||||
|
console.log('Done changing');
|
||||||
this.setChanging(false);
|
this.setChanging(false);
|
||||||
});
|
});
|
||||||
|
|
||||||
// TODO: Use Animation Class
|
// TODO: Use Animation Class
|
||||||
this.getNativeElement().addEventListener('transitionend', ev => {
|
this.getNativeElement().addEventListener('transitionend', ev => {
|
||||||
|
console.log("Transition end");
|
||||||
//this.setChanging(false)
|
//this.setChanging(false)
|
||||||
clearTimeout(this.setChangeTimeout);
|
clearTimeout(this.setChangeTimeout);
|
||||||
this.setChangeTimeout = setInterval(finishChanging, 500);
|
this.setChangeTimeout = setInterval(this.finishChanging, 400);
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -82,10 +90,27 @@ export class Aside extends Ion {
|
|||||||
super.onInit();
|
super.onInit();
|
||||||
this.contentElement = (this.content instanceof Node) ? this.content : this.content.getNativeElement();
|
this.contentElement = (this.content instanceof Node) ? this.content : this.content.getNativeElement();
|
||||||
|
|
||||||
|
if(this.contentElement) {
|
||||||
|
this.contentElement.addEventListener('transitionend', ev => {
|
||||||
|
console.log("Transition end");
|
||||||
|
//this.setChanging(false)
|
||||||
|
clearTimeout(this.setChangeTimeout);
|
||||||
|
this.setChangeTimeout = setInterval(this.finishChanging, 400);
|
||||||
|
})
|
||||||
|
this.contentElement.addEventListener('click', this.contentClickFn);
|
||||||
|
} else {
|
||||||
|
console.error('Aside: must have a [content] element to listen for drag events on. Supply one like this:\n\n<ion-aside [content]="content"></ion-aside>\n\n<ion-content #content>');
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
this.gestureDelegate = this.getDelegate('gesture');
|
this.gestureDelegate = this.getDelegate('gesture');
|
||||||
this.typeDelegate = this.getDelegate('type');
|
this.typeDelegate = this.getDelegate('type');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
onDestroy() {
|
||||||
|
this.contentElement.removeEventListener('click', this.contentClickFn);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* TODO
|
* TODO
|
||||||
* @return {Element} The Aside's content element.
|
* @return {Element} The Aside's content element.
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
<ion-aside #aside [content]="content" id="menu" type="overlay">
|
<ion-aside #aside [content]="content" id="menu" type="reveal">
|
||||||
|
|
||||||
<ion-toolbar secondary>
|
<ion-toolbar secondary>
|
||||||
<ion-title>Left Menu</ion-title>
|
<ion-title>Left Menu</ion-title>
|
||||||
@ -17,7 +17,6 @@
|
|||||||
</button>
|
</button>
|
||||||
|
|
||||||
</ion-list>
|
</ion-list>
|
||||||
|
|
||||||
</ion-content>
|
</ion-content>
|
||||||
|
|
||||||
</ion-aside>
|
</ion-aside>
|
||||||
|
@ -21,4 +21,6 @@
|
|||||||
<button id="e2eContentToggleAside" aside-toggle>Toggle Aside</button>
|
<button id="e2eContentToggleAside" aside-toggle>Toggle Aside</button>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
<f></f><f></f><f></f><f></f><f></f><f></f><f></f><f></f>
|
||||||
|
|
||||||
</ion-content>
|
</ion-content>
|
||||||
|
Reference in New Issue
Block a user