Avatar billede j-roar-h Nybegynder
24. februar 2011 - 19:40 Der er 6 kommentarer og
1 løsning

slide

Hej.

Jeg skal lave en funktion som gør at der i top og bund er vist følgende på den første side:

28-29 > >>
Den første pil er en side frem. de to pile markere at man går til sidste side.

på næste side var der så vist

<< < 30-31

Det skal virke på denne side: http://www.jacobroarhansen.dk/public/TennisCamp/tenniscamps.html

Håber i forstår spørgsmålet og vil hjælpe
Avatar billede Slettet bruger
24. februar 2011 - 20:04 #1
Tror der er en masse folk herinde som gerne vil hjælpe, hvis altså man kan få lokket lidt flere informationer ud af dig, såsom hvorfra- og hvordan du får dataen, som funktionen skal fungerer på.

Jeg ville umiddelbart tro du er havnet i den forkerte kategori - men ret mig hvis jeg tager fejl - da sådanne sider typisk får sin data fra en database, som man typisk kommunikerer med via et Server Side sprog som f.eks. ASP eller PHP.

Til sidst vil de fleste folk, inkl. undertegnede, være interesseret i hvor langt du selv er kommet med funktionen.
Hvad er det du ikke kan få til at virke? osv.

Vil du derimod have en færdig løsning implementeret, så skal du derimod oprette tråden under Programmeringsopgaver

Håber denne information kan være behjælpelig med at få flere folk til at gide at bruge sin tid på at hjælpe dig.
Avatar billede j-roar-h Nybegynder
24. februar 2011 - 20:33 #2
Jeg har faktisk en funktion som gør nogen lunde det samme. Den kører bare den forkerte vej. Den ligger her: http://www.jacobroarhansen.dk/public/TennisCamp/info_til_klubben.html

Det er den grønne menu til højre.

Hvis i kan hjælpe med at få den til at køre den, den anden vej, tror jeg det vil være løsningen.

js koden ser sådan ud:       

var gTop=0;
          var gIncVal=0;
          var timeOutValue=80;
           
           
          function scrollMe(arg)
          {   
            var objEncNav=document.getElementById('encNav');
           
            var scrollAmount=160;
            var objEncNavHeight=parseInt(objEncNav.offsetHeight);
            var objEncNavTop=objEncNav.style.top;
       
            var barHeight=160; 
           
            if(!objEncNavTop)
              objEncNavTop=0;
            else
              objEncNavTop=objEncNavTop.substring(0,objEncNavTop.length-2);
             
            if(arg>0)
            {
              if(objEncNavTop>=0 || objEncNavTop>(-(objEncNavHeight-(barHeight+scrollAmount))))
              {
                incrementValue=scrollAmount;
              }
              else if(objEncNavTop<(-(objEncNavHeight-(barHeight+scrollAmount))))
              {
                incrementValue=(objEncNavHeight-barHeight)+parseInt(objEncNavTop);
              }
              else
              {
                incrementValue=0;
              }
              encSmoothScroll("minus", parseInt(objEncNavTop), parseInt(incrementValue));
            }
            else
            {
              if(objEncNavTop<0 && ((parseInt(objEncNavTop)+scrollAmount) < 0))
              {
                incrementValue=scrollAmount;
              }
              else
              {
                incrementValue=-objEncNavTop-0;   
              }
              encSmoothScroll("plus", parseInt(objEncNavTop), parseInt(incrementValue));
            }
          }
          function encSmoothScroll(dir, currentVal, incValue)
          {
            gTop=currentVal;
            gIncVal=incValue;
            encScrollBy(dir, 0)
          }
          function encScrollBy(dir, val)
          {
            if(val<gIncVal)
            {
              var tmpInc;     
              if((gIncVal-val)>1)     
              {
                tmpInc=Math.ceil((gIncVal-val)/10);
                if(tmpInc <1)
                  tmpInc=1;
              }
              else
              {
                tmpInc=gIncVal-val;
              }
             
              val+=tmpInc;
             
              var objEncNav=document.getElementById('encNav');
              if(dir=="plus")
              {
                objEncNav.style.top=gTop+val+"px";
              }
              else if(dir=="minus")
              {
                objEncNav.style.top=gTop-val+"px";
              }
              var t=setTimeout("encScrollBy('"+dir+"', "+val+");", timeOutValue);
            }
            else
            {
              clearTimeout(t);
            }
          }

Håber dette er nemmere. Kan godt se det ikke var så godt forklaret.
Avatar billede intenz Novice
24. februar 2011 - 20:52 #3
Problemet er ikke kun, at det er dårligt forklaret (men det er det også). Problemet er mere, at du forventer et færdigt script leveret, uden selv at have lavet noget (på nær at have fundet et tilfældigt, uoverskueligt script et sted på nettet).

Det er hjælp til selvhjælp. Hvis du ikke har konkrete spørgsmål, men bare vil have arbejdskraft, så koster det typisk penge.
Avatar billede Slettet bruger
24. februar 2011 - 20:54 #4
Hvis jeg forstår dig ret er det du vil have lavet i post #1 en slags "pagination", altså opdele din data i sider.

Det som der sker i det stykke kode du har pastet i post #3 er at du har alle dataene i én lang vertikal række efter hinanden og så har du lavet et vindue (den grønne boks) der ligger ovenpå.
Javascriptet tillader dig så at bladre op og ned af din dataliste, og du ser kun en brøkdel af hele listen igennem dit vindue.

Hvis du vil bruge samme metode på dine ugeliste, så skal alle ugerne have samme størrelse uanset ugens indhold og du kan så derefter tilpasse værdien af "scrollAmount"-variablen i javascriptet så den matcher højden på indholdet af én uge.

Vil dog sige jeg ikke er særlig stor fan af den tilgang og vil istedet råde dig til at søge her på Eksperten, efter hvordan man laver "pagination" - altså opdeler datalisten over flere sider.

Der er tonsvis af sådanne tråde allerede overalt - da det åbenbart er en hård nød for de fleste at knække - så det er bare med at komme i gang med at kigge tråde igennem, hvis altså du ikke har tænkt dig at lave din egen funktion.

Kunne dog stadig godt tænke mig at vide hvorfra du får ugerne og deres indhold...
Er det fra en database?
Er det skrevet direkte ind i html koderne?

Den detalje har stor betydning for "pagination".
Avatar billede intenz Novice
24. februar 2011 - 20:57 #5
Du kan dog prøve at søge på google:
http://www.google.dk/#q=jquery+slider
Avatar billede Slettet bruger
24. februar 2011 - 21:02 #6
Så lige @intenz indlæg og kan kun ham ret.

Jeg håber du kan bruge mine indlæg til noget, da jeg tvivler jeg vil kunne bidrage med mere, med mindre du kommer med en mere specifik problemstilling, som ikke indeholder at skulle lave- og/eller omkode funktioner for dig.
Avatar billede j-roar-h Nybegynder
10. marts 2011 - 11:43 #7
Der var ikke rigtigt nogen der kom med noget jeg kunne bruge.. Så jeg lukker denne.
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