2013. 10. 23.

javascript JQuery offset() 반환값이 0이 나와요.

offset()값이 top이나 left나 모두 0으로 나온다.
아래는 특정 엘리먼트를 최상단에 위치하게 페이지 스크롤 해주는 코드다.

var position = $('#time_'+idx).offset();
$('html, body').animate( {scrollTop: position.top-5 }, 500);

phonegap(cordova) + jquery mobile에서 필요해서 갖다 붙였는데 반응하지 않는다.
alert으로 값들을 찍어 봤는데, position.top 값이 0으로 찍힌다.

document.getElementById("target").offsetParent.tagName
$("#target").get(0).offsetParent.tagName

아래 것은 JQuery 방식.
이렇게 특정 엘리먼트를 포함하는 기준 개체가 뭔지 확인 해 볼 수 있다. 부모 개념인가?

내가 이동하고자 하는 특정 엘리멘트를 포함하고 있는 기준 개체란 것의 potision 속성값에 따라 자식 엘리먼트의 좌표값이 바뀔 수 도 있단다.

CSS쪽으론 아는게 없어서 일단  모든 CSS파일을 링크 해제 했다. 형편없게 뭉게져버린 페이지지만 offset()값은 제대로 나온다! 무엇인진 모르겠으나 position에 속성값을 주나보다. 찾아서 좀 수정 해보려 했으나 jquery mobile 기본 CSS라 건드릴 엄두가 안난다. 화면 가득 빽뺵한 소스를 보고있으니 멀미가 난다.

다시 CSS링크 하고 저 기준개체란 녀석을 찍어봤는데 null이 나온다... 여기까지다 못하겠다.
결국 고정값으로 스크롤 되게끔 처리 했지만,  다른 컴포넌트들의 height 값 바뀌면 사정없이 엉뚱한테 스크롤 되버린다.

댓글 없음 :

댓글 쓰기