[javascript] op html pagina naar bepaald punt springen

Pagina: 1
Acties:

  • xillius
  • Registratie: November 2001
  • Laatst online: 23-01-2022
Ik ben mijn hersenen aan het breken over het volgende probleem en ik kom maar niet op een mooie oplossing. :(

Ik heb een html pagina waar op een naam geselecteerd moet kunnen worden. Deze pagina word gegenereerd uit een database waar elementen toegevoegd en verwijderd worden.

Deze lijst zal dus aardig lang zijn. De gebruiker moet deze lijst gewoon lekker rustig kunnen doorlezen om te kijken welke hij/zij wil selecteren maar als de gebruiker al weet welke naam hij wil selecteren moet er een mogelijkheid zijn om hier snel heen te gaan.

Ik zat dus zelf te denken aan een tekstveld waar de persoon dan letters in typt en dat de html pagina dmv javascript dan naar het punt springt waar de namen beginnen met die letter. Als de gebruiker dan nog een letter intypt word er weer verder gesprongen naar het punt waar alle namen beginnen met deze 2 letters.

Mijn 1e probleem is dat ik de pagina niet netjes gesprongen krijg naar een object, omdat ik geen focus kan doen op een <td> of een <div> of iets dergelijks wat niet zichtbaar is. (De pagina bestaat dus uit alleen tekst, geen invoer velden behalve die voor de selectie.

Mijn 2e probleem daarna is hoe ik het beste kan filteren op de letters die ingetypt zijn en naar het goede punt kan springen. Maarja dat is natuurlijk pas mogelijk als ik goed naar een line in het document kan springen.

Is dit mogelijk zo ja, in welke hoek moet ik zoeken? :?
Of ben ik weer veel te moeilijk aan het denken en weet iemand een betere oplossing om een persoon een naam te laten kiezen uit een zeer lange lijst.

  • HunterPro
  • Registratie: Juni 2001
  • Niet online
frameset met voldoende anchors?

  • Thijsmans
  • Registratie: Juli 2001
  • Laatst online: 22:09

Thijsmans

⭐⭐⭐⭐⭐ (5/5)

Wees eens creatief.

Je hebt de invoer uit het text-veld, bijv.
JavaScript:
1
q = document.forms[0].elements['query'].value;


Vervolgens heb je in die pagina een zooi anchors (document.anchors). Dan ga je q vergelijken met de eerste q.length aantal letters van document.anchors[i].

Zal zo eens een voorbeeld maken...

Privacy-adepten vinden op AVGtekst.nl de Nederlandse AVG-tekst voorzien van uitspraken en besluiten.


  • Rukapul
  • Registratie: Februari 2000
  • Laatst online: 10:41
Je kan toch gewoon HTML anchors toevoegen aan elk stuk tekst?
zie ook: http://www.ces.ncsu.edu/depts/it/itaids/publish/010/

  • xillius
  • Registratie: November 2001
  • Laatst online: 23-01-2022
ok ik ga even zoeken want van die anchors had ik nog nooit echt gehoord, ik had wel wat faq's bekeken die ook zo een beetje werken maar die moest telkens refreshen wilde die naar de goede gaan, maar dat wil ik eigenlijk niet. Ik ga op onderzoek uit met deze info, maar alle andere opmerkingen zijn natuurlijk welkom!!!

  • Thijsmans
  • Registratie: Juli 2001
  • Laatst online: 22:09

Thijsmans

⭐⭐⭐⭐⭐ (5/5)

JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<script type="text/javascript">
function goTo() {
    q = document.forms[0].elements['q'].value;
    
    for(i=0; i<document.anchors.length; i++){
        qLen = q.length;
        aStr = document.anchors[i].name;
        aWhole = aStr;
        aStr = aStr.substring(0, qLen);
        if( aStr == q ){
            window.location.hash = aWhole;
        }
    }
}
</script>


http://prammenhanger.dezeserver.nl/got/anchors.html

\o/

/edit: klein foutje eruit

[ Voor 25% gewijzigd door Thijsmans op 17-10-2003 11:20 ]

Privacy-adepten vinden op AVGtekst.nl de Nederlandse AVG-tekst voorzien van uitspraken en besluiten.


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 20:27

crisp

Devver

Pixelated

Met een array in JS en een vaste fontsize en lineheight voor je lijst kan je aan de hand van de plek in je array bepalen hoeveel regels je moet scrollen - ik heb zoiets ook al eens toegepast en dat werkt ook best prettig.

Intentionally left blank


  • xillius
  • Registratie: November 2001
  • Laatst online: 23-01-2022
@Prammenhanger
Ik ben u zeer erkentelijk, dit is precies wat ik nodig heb.
Grappige is wel dat als je met getallen werkt (mijn test pagina) dat als je op een 7 drukt hij naar 79 gaat en als je op een 1 druk hij naar 199 gaat. Dat zal ik er zelf nog wel uit halen, moet wel lukken denk ik.

edit:
code:
1
2
3
4
        if( aStr == q ){
            window.location.hash = aWhole;
            return;
        }


de return; was genoeg :)

[ Voor 22% gewijzigd door xillius op 17-10-2003 11:30 ]


  • r0bert
  • Registratie: September 2001
  • Laatst online: 11-08 16:19
Weet niet of het al ondersteund wordt door browsers ?
Xpointer

  • Blaise
  • Registratie: Juni 2001
  • Niet online
Misschien is dit een idee... Soort Ctrl+F zonder Ctrl+F te drukken :)

  • Thijsmans
  • Registratie: Juli 2001
  • Laatst online: 22:09

Thijsmans

⭐⭐⭐⭐⭐ (5/5)

psst, misschien heeft hij de oplossing al :P

Privacy-adepten vinden op AVGtekst.nl de Nederlandse AVG-tekst voorzien van uitspraken en besluiten.


  • Blaise
  • Registratie: Juni 2001
  • Niet online
Oh... Nou..ehmmm...

Ik bied keuzevrijheid :)
Pagina: 1