Avatar billede qumle Nybegynder
10. november 2005 - 18:49 Der er 3 kommentarer og
1 løsning

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
Avatar billede roenving Novice
11. november 2005 - 04:54 #1
Og det er ikke fordi siden simpelthen ikke er længere, så der ikke er mere at scrolle ned ?-)
Avatar billede qumle Nybegynder
11. november 2005 - 12:45 #2
problem solved...

Jeg har altid sat focus til at være på en dropdown som er 63 px nede på skærmen.
DOOH
Avatar billede qumle Nybegynder
11. november 2005 - 12:45 #3
svar
Avatar billede roenving Novice
13. november 2005 - 01:38 #4
-- og husk at markere dit eget navn, før du trykker på Acceptér !-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester