Monday, May 20, 2024
 Popular · Latest · Hot · Upcoming
9
rated 0 times [  13] [ 4]  / answers: 1 / hits: 58896  / 12 Years ago, sat, july 7, 2012, 12:00:00

I have an image pop-up ability on my website, in order to show users the full resolution picture when they click on a smaller version on the page.



This is the current CSS that positions it:



div#enlargedImgWrapper {
position: absolute;
top: 30px;
left: 55px;
z-index: 999;
}


The problem now is that if I click on an image further down the page, the window still appears in the top left corner of the page, where I can't see it until I scroll back up. I need it to appear relative to the window, whatever its current position relative to the document is.



Note: I don't want to use position: fixed; as some images might be taller than the screen, so I want users to be able to scroll along the image as well.



My idea was to use JS to change the top value:



var scrollValue = ???;
document.getElementById('enlargedImgWrapper').style.top = scrollValue+30 + 'px';


How can I detect by how much the user has scrolled down the page (var scrollValue)?

Or is there a 'better' way to do this?



Edit: if possible I would like to do this without jQuery.


More From » html

 Answers
21

Pure JavaScript uses scrollTop and scrollLeft:



var scrollLeft = (window.pageXOffset !== undefined) ? window.pageXOffset : (document.documentElement || document.body.parentNode || document.body).scrollLeft;
var scrollTop = (window.pageYOffset !== undefined) ? window.pageYOffset : (document.documentElement || document.body.parentNode || document.body).scrollTop;


https://developer.mozilla.org/en-US/docs/Web/API/Element.scrollTop



jQuery version:



var scrollLeft = $(window).scrollLeft() ;
var scrollTop = $(window).scrollTop() ;


What you need is this:



document.getElementById('enlargedImgWrapper').style.top = (scrollTop+30) + 'px';

[#84407] Thursday, July 5, 2012, 12 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
kaitlynd

Total Points: 470
Total Questions: 108
Total Answers: 120

Location: Faroe Islands
Member since Thu, Apr 8, 2021
3 Years ago
;