2017-04-03 3 views
1

현재 블록의 값을 보유하고있는 끈적한 헤더를 내 앱에 만들어야합니다.이오니아 2 - 끈적한 헤더

는 스티키 헤더에 표시되는 요소를 결정하기 위해
import { Component, ViewChild } from '@angular/core'; 
import { Content } from 'ionic-angular'; 

@Component({ 
    selector: 'page-home', 
    templateUrl: 'home.html' 
}) 
export class HomePage { 
    @ViewChild(Content) 
    content:Content; 

    ngAfterViewInit() { 
    // I want to trigger the listener during the scroll event 
    this.content.ionScroll.subscribe((data)=>{ 
     this.onPageScroll(data); 
    }); 
    } 

    onPageScroll(data) { 
    console.log("top:", data['scrollTop']) 
    } 

    : 
    : 

, I는 각각의 단부가 숨겨진 요소 차단 :

<div class="titleTag" style="display:none">{{event.title}}</div> 

는이 코드를 사용하여 스크롤 위치를 검색

나는 이러한 요소의 위치를 ​​검색하려고 :

let titleTags = document.getElementsByClassName('titleTag'); 
for (let el of <any>titleTags) { 
    console.log(" > offsetTop", el.offsetTop); 
} 

내가 공을받을를

나는 또한 offsetHeightscrollTop을 시도했는데 둘 다 0을 반환합니다.

어떤 아이디어 ??

+0

''을 사용해 보셨나요? https://ionicframework.com/docs/api/components/toolbar/Header/ – Chris

+0

나는 ''요소를 가지고 있는데 실제로 끈적 끈적한 제목을위한 자리 표시자를 가지고 있지만, 문제는 내가 다음을 얻지 못한다는 것입니다. 표시 할 요소! – guyaloni

+1

끈적 끈적한 이온 - 목록 머리글에 대한 작은 지시문을 만들었습니다 : https://github.com/jonaszuberbuehler/ion-affix. 이게 뭐야? – z00bs

답변

1

이오닉 2/각도 2의 요소를 직접 얻으려면 ElementRef을 사용하십시오.

import {ElementRef} from '@angular/core'; 


//class.. 
constructor(public el:ElementRef){} 

//in your function... 
let titleTags =this.el.nativeElement.getElementsByClassName('titleTag'); 
for (let el of <any>titleTags) { 
    console.log(" > offsetTop", el.offsetTop); 
} 
+0

불행히도 그것은 둘 다 작동하지 않습니다 ... 나는 0을 얻습니다. BTW, (디버깅)'el.'__proto__을 확인하면 다음을 얻습니다 :'HTMLDivElement {Symbol (Symbol.toStringTag) : "HTMLDivElement"}'. 모든 조상들에 대해서도'offsetTop'을 체크했는데 같은 결과를 얻었습니다. – guyaloni