Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

jQuery Offset returns negative value

Tags:

jquery

offset

am having a scenario like this below:

In my ui, I will have a textbox. If I have enter a number in the textbox,I need to scroll down to the respective page number.

In Dom, I will have some divs with the respective id's. If user entered a page number as 5. I will check for 5th div offset in dom and get top value. By using scrollTop It will scrolled to the 5th div.

Here, Issue is after scrolled down to the 5th div. If again, entered a page number as 2. offset top value in negative. Hence,ScrollTop defaultly moved to top.

Here is fiddle

To reproduce this exactly,Go to page number 7 and again go to page number 3 or 4.

like image 568
NBI Avatar asked Dec 24 '14 06:12

NBI


2 Answers

Late answer, in case it will help someone:

Just use dom offsetTop property. That will be a correct position despite whatever scrolling has happened before.

$( something )[0].offsetTop; 
like image 56
Ingmars Avatar answered Oct 03 '22 13:10

Ingmars


http://jsfiddle.net/Ldfmvwr9/3/

Try it

topValue=$('#container').scrollTop() + $("#"+parseInt(userPageNum)).offset().top - $("#"+parseInt(userPageNum)).height() / 2;
like image 25
waki Avatar answered Oct 03 '22 13:10

waki