its very simple.
Let me tell you some thing about the view ports now using JQuery :
View port is : region visible on your browser window , how to get it.
$(window).height(); // returns height of browser viewport $(document).height(); // returns height of HTML document
how to get detects wether a element has just crossed the top most position of the browser
: find scrollHeight and substract with the page Height ie $(window).height();
code goes below
var scrollHeight = jQuery(window).scrollTop();
// to display the how much you scroll down
var pos = jQuery("#"+id).show().position();// find out he position of the element like here we have div var pageHeight = jQuery(window).height();
// the page size in height var DefaultDivpositon = pageHeight - pos.top ;
// get the location of the div on view port var scrollDivpositon = pageHeight - scrollHeight
// this is the top of page- works as tag.
var diff = scrollDivpositon -DefaultDivpositon;
// this is required for the div is having a height of 50 px ..
so it becomes div start way before, the top position of the mouse pointer,
so we need to consider that height
jQuery("#"+id).css("margin-top","-40px");
if (diff <=40){
alert("Invisible");jQuery("#"+id).css("margin-top",diff-10);
//alert("visible");
}
var divHt = pos.top+48; // added 48 to the top position to counter the additional height
// of the div from the top
if( divHt > pageHeight + scrollHeight){ jQuery("#"+id).css("margin-top","-75px");// increase the view port added the scrollHeight
// alert(jQuery("#"+id).css("margin-bottom"));
// -40 px was the initial top margin again we played with the //last code and just made minimal changes to get things done
}The above codes check that if a particular div is hidden on scrolling
if so its just add top marging and pushes it in visible region
but what if we scroll down and face similar situation:
if( divTotalHt > pageHeight + scrollHeight){// increase the view port added the scrollHeight
jQuery("#"+obj).css("margin-top","-45px");// -40 px was the initial top margin again we played with the
last code and just made minimal changes to get things done
} If popup is too large for the view port just fix it :
jQuery("#"+obj).css("top",scrollHeight+10);
It worked fine for me.
No comments:
Post a Comment