Hoogte van scroller bepalen

Pagina: 1
Acties:

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 00:22

crisp

Devver

Pixelated

Topicstarter
Ik zit al een tijdje met het probleem hoe ik de hoogte van een scroller kan/moet bepalen. Volgens mij moet er een formule voor zijn, maar heb die nog niet kunnen beredeneren.
Een plaatje voor de duidelijkheid:
Afbeeldingslocatie: http://www.crisp.demon.nl/pictures/selectbox.gif
waarbij:
a = totale hoogte van de niet geclipte content = 96
b = hoogte v/h zichtbare deel van de content = 60
c = hoogte van de scroller = ?
d = beschikbare ruimte van de scroller = 28

De vraag is dus hoe ik c bepaal, en dan dus weet hoeveel scrollruimte ik heb, en dus hoeveel pixels ik de content moet verschuiven per pixel dat de scroller verschuift.
Het liefst zou ik dus een algemene formule hebben waarbij ik bij elke gewenste a, b en d c kan uitrekenen.
Iemand suggesties?

Intentionally left blank


  • Tim Schuhmacher
  • Registratie: Januari 2000
  • Laatst online: 21:18

Tim Schuhmacher

abasios

a:b
dus ook
d:c

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 00:22

crisp

Devver

Pixelated

Topicstarter
Op zondag 03 februari 2002 13:39 schreef Tim Schuhmacher het volgende:
a:b
dus ook
d:c
Dat was dus inderdaad mijn eerste ingeving. Echter als ik dat uittest, en tegelijkertijd een voorbeeld ernaast zet met een automatisch gegenereerde scrollbar, dan zie ik toch verschillen in de hoogte van mijn scroller, en de automatische scrollbar.

Intentionally left blank


Verwijderd

c = ((b - (2 * pijlknopje)) / a) * (b - (2 * pijlknopje))

zou kunnen werken?


edit:

d = (b - (2 * pijlknopje)

duh |:(

c = d/a * d


  • Tim Schuhmacher
  • Registratie: Januari 2000
  • Laatst online: 21:18

Tim Schuhmacher

abasios

Maar waarom wil je nou zelf de maten kunnen berekenen als het automatisch ook kan?

Uiteraard moet je nog wel rekening houden met een lege scrollijst denk ik. En zou wel een minimale grote van c vaststellen

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 00:22

crisp

Devver

Pixelated

Topicstarter
Op zondag 03 februari 2002 13:52 schreef mr10 het volgende:
c = ((b - (2 * pijlknopje)) / a) * (b - (2 * pijlknopje))

zou kunnen werken?


edit:

d = (b - (2 * pijlknopje)

duh |:(

c = d/a * d

Dan zou ik in dit geval een scroller van 8 pixels krijgen, en een scrollruimte van 20 pixels; dat suggereert dan dat er veel meer 'hidden' content is dan er daadwerkelijk is.
c = (b/a)*d geeft een betere indicatie, echter wijkt dit af van de hoogte van de scroller van 'automatisch' gegenereerde scrollbars.
Het is wel werkbaar, maar ik vraag me gewoon af wat de 'echte' formule zou zijn.

Intentionally left blank


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 00:22

crisp

Devver

Pixelated

Topicstarter
Op zondag 03 februari 2002 14:00 schreef Tim Schuhmacher het volgende:
Maar waarom wil je nou zelf de maten kunnen berekenen als het automatisch ook kan?

Uiteraard moet je nog wel rekening houden met een lege scrollijst denk ik. En zou wel een minimale grote van c vaststellen
Ja, natuurlijk kan ik een gewone selectbox maken, maar dit is toch veel mooier?

Intentionally left blank


  • Clay
  • Registratie: Oktober 1999
  • Laatst online: 22-06 13:51

Clay

cookie erbij?

heb um zelf zo:

c = d/(a/b)

hetzelfde dus :D maar dit boeit toch niet zo? het klopt ongeveer wel, als a = 10, en b = 5, dan is je scrollbar de helft van de scrollbare hoogte, is goed genoeg als je het mij vraagt.
Maar hoe snel gaat je element scrollen als je op de pijltjes drukt? >:) want dat moet ook verschillen eigenlijk.

Instagram | Flickr | "Let my music become battle cries" - Frédéric Chopin


Verwijderd

Je kunt een ratio variabele berekenen die voor elke actie die je met je scroller uithaalt geldt: de deltaY van je scroller pijltjes dan ratio * deltaY van je content.

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 00:22

crisp

Devver

Pixelated

Topicstarter
Op zondag 03 februari 2002 14:04 schreef Clay het volgende:
heb um zelf zo:

c = d/(a/b)

hetzelfde dus :D maar dit boeit toch niet zo? het klopt ongeveer wel, als a = 10, en b = 5, dan is je scrollbar de helft van de scrollbare hoogte, is goed genoeg als je het mij vraagt.
Maar hoe snel gaat je element scrollen als je op de pijltjes drukt? >:) want dat moet ook verschillen eigenlijk.
Als je op de pijltjes drukt scroll je in dit geval (een selectbox) precies 12 pixels (= de hoogte van 1 tekstlijn), Simpel dus.
Je kan onderscheidt maken tussen scrollen in een lijst-element, en scrollen in een variabele contentarea waar je pixel-procentueel scrolled met de pijltjes (dat zou je dus ook met een formule moeten bepalen).

Intentionally left blank


  • Clay
  • Registratie: Oktober 1999
  • Laatst online: 22-06 13:51

Clay

cookie erbij?

ik bedoel niet hoesnel je de content laat scrollen, maar hoesnel je het scroll element laat scrollen als je met de pijltjes scrollt:

vanuit het scroll-element slepen reken je content positie vanuit element positie, met de pijltjes kan je het scroll-element bewegen waarna je content op basis daarvan een positie krijgt, maar het is netter om met de pijltjes de content met een constante snelheid te bewegen, en op basis daarvan het scroll-element op de goeie plek neer te zetten, zodat die een variabele snelheid krijgt zoals het normaal ook is.
Maar dan moet je er wel voor uitkijken dat je content niet ook maar 1 pixel verspringt met die 2 verschillende berekeningen die je dan krijgt.

dat bedoel ik :)

Instagram | Flickr | "Let my music become battle cries" - Frédéric Chopin


  • Tom
  • Registratie: Juni 1999
  • Niet online

Tom

[ot] mr10> vet icoon!

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 00:22

crisp

Devver

Pixelated

Topicstarter
Op zondag 03 februari 2002 15:19 schreef Clay het volgende:
ik bedoel niet hoesnel je de content laat scrollen, maar hoesnel je het scroll element laat scrollen als je met de pijltjes scrollt:

vanuit het scroll-element slepen reken je content positie vanuit element positie, met de pijltjes kan je het scroll-element bewegen waarna je content op basis daarvan een positie krijgt, maar het is netter om met de pijltjes de content met een constante snelheid te bewegen, en op basis daarvan het scroll-element op de goeie plek neer te zetten, zodat die een variabele snelheid krijgt zoals het normaal ook is.
Maar dan moet je er wel voor uitkijken dat je content niet ook maar 1 pixel verspringt met die 2 verschillende berekeningen die je dan krijgt.

dat bedoel ik :)
Ik begrijp wat je bedoelt, en had dat al zo geimplementeerd; als je de scroller beweegt positioneer je de content aan de hand van de positie van de scroller; als je de pijltjes beweegt scroll je de content, en positioneer je de scoller aan de hand van de content-positie.
Je moet alleen een delay inbouwen na de eerste keer scrollen, en daarna met een constante snelheid doorgaan.
Nu nog nadenken hoe ik het ga oplossen als er in de scrollarea (boven of onder de scroller) wordt geclicked :)

Intentionally left blank


Verwijderd

[ot] Tom > thanx! :)

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 00:22

crisp

Devver

Pixelated

Topicstarter
work in progress online gezet voor de nieuwsgierigen onder ons.
Absoluut nog beta, want eerst wil ik die DHTML scrollbar perfect hebben. Later moet dit een pagina worden waar je online een DHTML menu in elkaar kan flansen, maar dat is toekomstmuziek... :)

Intentionally left blank


Verwijderd

Op zondag 03 februari 2002 14:03 schreef crisp het volgende:

[..]

Ja, natuurlijk kan ik een gewone selectbox maken, maar dit is toch veel mooier moeilijker?
:+

  • Tim Schuhmacher
  • Registratie: Januari 2000
  • Laatst online: 21:18

Tim Schuhmacher

abasios

grappig, maar wat zeker wel moet werken is dat de scrollbar doorscrolt als je je muisknop ingedrukt houdt.
Maar je bent nog bezig, dus misschien lag het al in de planning. :)

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 00:22

crisp

Devver

Pixelated

Topicstarter
Op zondag 03 februari 2002 22:36 schreef Type het volgende:

[..]

:+
Alles is de eerste keer lastiger; als je het eenmaal een keer gemaakt hebt is het gewoon copy-paste. Misschien dat je er voor IE een behaviour van kan maken met eigen tags.
Op zondag 03 februari 2002 22:37 schreef Tim Schuhmacher het volgende:
grappig, maar wat zeker wel moet werken is dat de scrollbar doorscrolt als je je muisknop ingedrukt houdt.
Maar je bent nog bezig, dus misschien lag het al in de planning. :)
Zit uiteraard nog in de planning ja, net als dat je op de scrollarea kan klikken (mis ik bv bij die van Clay)

Intentionally left blank


  • Clay
  • Registratie: Oktober 1999
  • Laatst online: 22-06 13:51

Clay

cookie erbij?

Ziet er al goed uit! :9~

Dat klikken in de scrollarea, zit er idd bij mij niet in, maar da's meer luiheid van mij, komt nog wel (ooit) :) In het oude script zit het wel, maar dat gaat met stappen, is ook niet echt je dat.

Wat ik trouwens wel handig zou vinden is dat je niet je div's in de pagina hoeft te zetten, maar meer iets van:
code:
1
2
3
4
5
// pseudo code
mySelect = new customSelect(eigenschappen...);
mySelect.add(optionLabel, optionValue);
mySelect.add(optionLabel, optionValue);
mySelect.add(optionLabel, optionValue);

Da's wel wat lastiger, en dat zou ik ook niet Opera compatible maken, maar het is wel handiger als je bijvoorbeeld 10 van die selects in je pagina wil hebben.

Instagram | Flickr | "Let my music become battle cries" - Frédéric Chopin


Verwijderd

Op zondag 03 februari 2002 14:03 schreef crisp het volgende:
[..]

Ja, natuurlijk kan ik een gewone selectbox maken, maar dit is toch veel mooier moeilijker?

:+

Dat hangt met elkaar samen bij de W&G boys :)
Pagina: 1