scrollBy kan ikke scrolle mere end 63 px
jeg har brug for at scrolle til et bestemt sted på min JSP side når den loades.hvor der skal scrolles hen afhænger af flere ting, men det antal pixel der skal scrolles er gemt i session.
jeg har tilføjet følgende i min jsp fil
(det skal lige siges at jeg bruger nogle SAP html elementer, derfor den lidt spøjse javascript nogle steder)
//set eventhandlers for scrolling
//document.body.onscroll = setcoords;
window.onload = scrollIt;
//scrolls to the previous scroll position on the page
function scrollIt(){
var funcName = htmlb_formid+"_getHtmlbElementId";
func = window[funcName];
var xField = eval(func('<%=bookingBean.SCROLLXPOSITION%>'));//svarer til getElementById
var yField = eval(func('<%=bookingBean.SCROLLYPOSITION%>'));//svarer til getElementById
var y = yField.getValue();
alert('setting scrollpos to '+y);
window.scrollBy(xField.getValue(), y);
alert('field value after scroll '+y);
alert('actual scroll position '+document.body.scrollTop);
document.body.scrollTop = y;
}
//saves the scrollpositions in hidden fields
function setcoords(){
var funcName = htmlb_formid+"_getHtmlbElementId";
func = window[funcName];
var xField = eval(func('<%=bookingBean.SCROLLXPOSITION%>'));
var yField = eval(func('<%=bookingBean.SCROLLYPOSITION%>'));
var myPageX;
var myPageY;
if (document.all){
myPageX = document.body.scrollLeft;
myPageY = document.body.scrollTop;
}
else{
myPageX = window.pageXOffset;
myPageY = window.pageYOffset;
}
xField.setValue(myPageX);
yField.setValue(myPageY);
}
det som gerne skulle ske her er at hver gang der bliver scrollet bliver den nye scroll position gemt i et hidden felt (i functionen setcoords ). Dette fungerer fint.
men når scrollIT() bliver udført er resultatet af alerts hvis y er 100:
setting scrollpos to 100
field value after scroll 100
actual scroll position 63
dette sker altid hvis jeg prøver at scrolle mere end 63 px ned, hvis jeg derimod scroller 50 px ender siden på 50 px
jeg har en anden side i min applikation med nøjagtig det samme javascript og der virker det fint.
nogen der har oplevet noget lignende før?
jeg har også prøvet at bruge scrollTo(x,y), der sker det samme