1
是否可以從HTMLElement中讀取值?如何從HTMLElement獲取樣式值,使用angular2和Typescript
以下代碼正在工作,但它在向後轉換中有小的延遲。那就是我需要_target元素的高度值。
import {
Directive, Input, Renderer, OnInit, ElementRef, TemplateRef
} from '@angular/core';
@Directive({
selector: '[accordion]'
})
export class AccordionDirective implements OnInit{
private _listener:Function;
private _active = false;
private _height;
@Input('accordion') _target:HTMLElement;
constructor(private _renderer:Renderer,
private element:ElementRef) {
}
ngOnInit() {
this._renderer.setElementStyle(this._target, 'max-height', '0em');
this._renderer.setElementClass(this._target, 'slider', true); // set css transition to the target element
this._listener = this._renderer.listen(this.element.nativeElement, 'click',() => {
if(!this._active){
this._renderer.setElementStyle(this._target, 'max-height', '50em'); <-- here is the variable height needed
}else{
this._renderer.setElementStyle(this._target, 'max-height', '0em');
}
this._active = !this._active;
});
}
}
這不是問題,我需要HTMLElement的當前值高度來處理轉換沒有延遲。 – Zero
然後用普通的Javascript代替它。像document.getElementById(this.target.id).style.maxHeight – Ray
這是不可能的,因爲該元素沒有maxHeight值。但我有一個解決方案,我用this.target.scrollHeight得到了價值。 – Zero