Toon posts:

[CSS] PopUp help absolute, probs met scroll

Pagina: 1
Acties:
  • 220 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Situatie:
Ik heb een lijst met buttons, hiervoor heb ik een leuk stukje JavaScript geknutseld dat bij de rechter muis knop een mooi PopUp venstertje tevoorschijn komt, met daarin wat extra info.

Probleem:
De PopUp komt alleen bij de eerste paar buttons goed, maar zodra je naar beneden scrolled niet meer. (dan staat hij -veel- te hoog)

Oorzaak:
Volgens mij werkt position: absolute op de frame, en niet op het zichtbare werkvlak.

Oplossing:
op een of andere manier de positionering op het werkvlak krijgen ipv het frame.

Ter extra illustratie, even de code . . .
Mogelijk ontdekken jullie het probleem wat ik niet zie :)

HTML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
  <script type="text/javascript" language="Javascript">
    <!-- Hide script from older browsers
      var MaxWidth = document.documentElement.offsetWidth - 160;
      popUpCurrentOpen = 'popUp1';
      if (document.getElementById) {
        stdBrowser = true
      }
      else {
        stdBrowser = false
      }

      function popUp(evt,currElem) {
        popDown(popUpCurrentOpen)
        if (stdBrowser) {
          popUpWin = document.getElementById(currElem).style
        }
        else {
          popUpWin = eval("document." + currElem)
        }

        if (document.all) {
          popUpWin.pixelTop = parseInt(evt.y)+2
          popUpWin.pixelLeft = Math.max(2,parseInt(evt.x)+2)
          if (popUpWin.pixelLeft > MaxWidth) {
            popUpWin.pixelLeft = Math.max(2,parseInt(evt.x)-160)
          }
        }
        else {
          if (stdBrowser) {
            popUpWin.top = parseInt(evt.pageY)+2 + "px"
            popUpWin.left = Math.max(2,parseInt(evt.pageX)+2) + "px"
          }
          else {
            popUpWin.top = parseInt(evt.pageY)+2
            popUpWin.left = Math.max(2,parseInt(evt.pageX)+2)
          }
        }
        popUpWin.visibility = "visible"
        popUpCurrentOpen = currElem;
      }

      function popDown(currElem) {
        if (stdBrowser) {
          popUpWin = document.getElementById(currElem).style
        }
        else {
          popUpWin = eval("document." + currElem)
        }
        popUpWin.visibility = "hidden"
      }

      function MouseOverMenuItem(currElem) {
        if (stdBrowser) {
          Item = document.getElementById(currElem).style
        }
        else {
          Item = eval("document." + currElem)
        }
        Item.background = "#000000"; 
        Item.color      = "#FFFFFF";
      } 

      function MouseIdleMenuItem(currElem) {
        if (stdBrowser) {
          Item = document.getElementById(currElem).style
        }
        else {
          Item = eval("document." + currElem)
        }
        Item.background = "#FFFFFF"; 
        Item.color      = "#000000";
      }


    // End hiding script -->
  </script>
  <style type="text/css">
     <!--
       .popUpStyle
         {backkground-color: #FFFFFF; 
           border: #9D9DA1 2px solid; 
           layer-background-color: #FFFFFF; 
           width: 150px; 
           font: 12px arial, helvetica, sans-serif; 
           padding: 5px; 
           position: absolute; 
           visibility: hidden;}
       .popUpMouseIdleHeader    
         {width: 150px; 
           cursor: default; 
           background: #FFFFFF; 
           color: #000000; 
           font: 14px arial, helvetica, sans-serif;
           font-weight: bold; 
           text-align: center;}
       .popUpMouseIdle      
         {width: 150px; 
           cursor: default; 
           background: #FFFFFF; 
           color: #000000;}
       .popUpMouseOver      
         {width: 150px; 
           cursor: default; 
           background: #000000; 
           color: #FFFFFF;}
     -->
  </style>

  • André
  • Registratie: Maart 2002
  • Laatst online: 26-05 00:33

André

Analytics dude

Zonder de code te bekijken: je moet de scrollTop van de pagina bij de y-waarde van je popup optellen.

Verwijderd

Topicstarter
André schreef op 09 februari 2004 @ 15:34:
Zonder de code te bekijken: je moet de scrollTop van de pagina bij de y-waarde van je popup optellen.
Dan doe je het niet slecht :p

Ik liep dus zwaar in de verkeerde richting te zoeken :)

HTML:
1
popUpWin.pixelTop = parseInt(evt.y)+2 + document.body.scrollTop

de oplossing ook even netjes neer zetten voor eventuele toekomstige mensen met 't zelfde probleem . . . .
Dank U voor de snelle en accurate oplossing :p _/-\o_

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

André schreef op 09 februari 2004 @ 15:34:
Zonder de code te bekijken: je moet de scrollTop van de pagina bij de y-waarde van je popup optellen.
Zonder de code te bekijken: :P
Die vieze eval kan volgens mij weg.

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


  • André
  • Registratie: Maart 2002
  • Laatst online: 26-05 00:33

André

Analytics dude

BtM909 schreef op 09 februari 2004 @ 15:40:
[...]

Zonder de code te bekijken: :P
Die vieze eval kan volgens mij weg.
:P eval kan altijd weg

Verwijderd

Topicstarter
BtM909 schreef op 09 februari 2004 @ 15:40:
[...]

Zonder de code te bekijken: :P
Die vieze eval kan volgens mij weg.
Volgens mij niet :)
Boek geeft iig aan dat dat voor de wat oudere browsers is e.d.
Ik tracht de site af-en-toe enig sinds compatible te houden, en ik denk niet dat ze voor de lol de code verdubbelen denk jij wel ? :)

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Verwijderd schreef op 09 februari 2004 @ 15:42:
[...]


Volgens mij niet :)
Boek geeft iig aan dat dat voor de wat oudere browsers is e.d.
Ik tracht de site af-en-toe enig sinds compatible te houden, en ik denk niet dat ze voor de lol de code verdubbelen denk jij wel ? :)
Wie zegt dat die hele regel leeg kan blijven ;). Ik praat alleen over die eval-constructie. :)

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


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

crisp

Devver

Pixelated

dit is overduidelijk een script dat nog geschreven is voor IE4 en NS4....

Intentionally left blank


Verwijderd

Topicstarter
crisp schreef op 09 februari 2004 @ 15:55:
dit is overduidelijk een script dat nog geschreven is voor IE4 en NS4....
en dat mag niet meer ofzo??

Met mijn nog vrij gebrekkige verstand van JavaScript zal ik het met voorbeelden moeten doen, en wanneer het werkt . . . Maakt het dan daadwerkelijk wat uit dat het uit de wat oudere tijd stamt?

  • SchizoDuckie
  • Registratie: April 2001
  • Laatst online: 18-02-2025

SchizoDuckie

Kwaak

Verwijderd schreef op 09 februari 2004 @ 16:58:
[...]

en dat mag niet meer ofzo??

Met mijn nog vrij gebrekkige verstand van JavaScript zal ik het met voorbeelden moeten doen, en wanneer het werkt . . . Maakt het dan daadwerkelijk wat uit dat het uit de wat oudere tijd stamt?
Op zich maakt het geen jota uit :)

Maar "wij w&g'ers" hebben ongeveer 2 jaar geleden besloten een heilige oorlog te starten tegen zo'n beetje alle v4.0 browsers :P

Dát het werkt, wil namelijk niet zeggen dat het in de toekomst nog steeds gaat werken. Als je een v4.0 browser hebt, wil dat eigenlijk zeggen dat je echt _ongelooflijk_ lui bent, en al tig jaar je browser niet geupdate hebt..

Vandaar eigenlijk dat "we" gelijk proberen de bij de mensen die nu pas beginnen met scripten er met de paplepel in te slaan dat ze de oldskool browsers links moeten laten liggen :P

[ Voor 37% gewijzigd door SchizoDuckie op 09-02-2004 17:04 ]

Stop uploading passwords to Github!


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

crisp

Devver

Pixelated

Verwijderd schreef op 09 februari 2004 @ 16:58:
[...]

en dat mag niet meer ofzo??

Met mijn nog vrij gebrekkige verstand van JavaScript zal ik het met voorbeelden moeten doen, en wanneer het werkt . . . Maakt het dan daadwerkelijk wat uit dat het uit de wat oudere tijd stamt?
och, het zal best wel werken in modernere browsers; feit is echter dat als je je richt op IE5+ en recente andere browsers je hetzelfde kan bereiken met veel minder en ook efficientere code :)

Wat ik altijd weer frappant vind is dit:
code:
1
2
3
<!-- Hide script from older browsers

// -->

Dat was voor IE4 en NS4 al niet meer nodig, en ik vraag me af hoeveel mensen er nog een versie 3 (of lager) browser gebruiken ;)

Intentionally left blank


Verwijderd

Topicstarter
Papa Eend schreef op 09 februari 2004 @ 17:02:
[...]


Op zich maakt het geen jota uit :)

Maar "wij w&g'ers" hebben ongeveer 2 jaar geleden besloten een heilige oorlog te starten tegen zo'n beetje alle v4.0 browsers :P

Dát het werkt, wil namelijk niet zeggen dat het in de toekomst nog steeds gaat werken. Als je een v4.0 browser hebt, wil dat eigenlijk zeggen dat je echt _ongelooflijk_ lui bent, en al tig jaar je browser niet geupdate hebt..

Vandaar eigenlijk dat "we" gelijk proberen de bij de mensen die nu pas beginnen met scripten er met de paplepel in te slaan dat ze de oldskool browsers links moeten laten liggen :P
Misschien stomme vraag enzo . . . maar euh.
heb je dan een goede website waar de huidige technieken staan met de nodige voorbeeld scripts ?

  • disjfa
  • Registratie: April 2001
  • Laatst online: 12-05 15:11

disjfa

be

Verwijderd schreef op 09 februari 2004 @ 17:18:
[...]
Misschien stomme vraag enzo . . . maar euh.
heb je dan een goede website waar de huidige technieken staan met de nodige voorbeeld scripts ?
blijf gerust een paar weken hier hangen en lees. dan leer je meer dan op sites maar sites die handig zijn zijn w3schools.com, www.alistapart.com en nog een paar. als je hier blijft en wat lees weet je er binnen no time nog 10 meer :)

disjfa - disj·fa (meneer)
disjfa.nl


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

crisp

Devver

Pixelated

Goede voorbeeld scripts zijn schaars... heel schaars
Wat wel goed is zijn references, zoals DevEdge en W3C
w3schools is leuk voor de basis, maar vind ik niet echt denderend qua kwaliteit, ALA en PPK ( http://www.quirksmode.org ) zijn beter qua kwaliteit hoewel op de scriptsamples daar ook wel eens wat aangemerkt kan worden :P

Intentionally left blank


  • disjfa
  • Registratie: April 2001
  • Laatst online: 12-05 15:11

disjfa

be

ja klopt, het roest er bij mij te erg in dat ik elke keer w3schools zeg maar die is idd niet al te cosistent met het onderhoud van xhtml en hoe we het hier gebruiken. en idd die quirksmode is erg goed :)

maarja de leuke scripts blijven idd schaars :)

sjees wat kan ik brak uit nederlands komen zeg

[ Voor 11% gewijzigd door disjfa op 09-02-2004 17:37 ]

disjfa - disj·fa (meneer)
disjfa.nl


Verwijderd

Topicstarter
Mede dankzij jullie hulp al hier:
Het resultaat
Met velen dank enzo :)

ps, netstat tracker van de mainsite geeft nog een slordige 4,7 en krappe 0,3% voor IE3 / NS3 gebruikers . . . .
dus ik laat de code maar eventjes zo :p

[ Voor 40% gewijzigd door Verwijderd op 10-02-2004 19:04 ]

Pagina: 1