"Real software engineers work from 9 to 5, because that is the way the job is described in the formal spec. Working late would feel like using an undocumented external procedure."
je popupje kan je dan weer in die div plaatsen, zodat ie niet 'onklikbaar' is
This message was sent on 100% recyclable electrons.
Voor intranet gelden deze nadelen niet altijd, dus daar kun je het vaak wel voor gebruiken.
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
| <script> function fadePage() { var div = document.createElement('div'); div.style.left = 0; div.style.top = 0; div.style.width = '100%'; div.style.height = '100%'; div.style.position = 'absolute'; div.style.background = '#fff'; div.style.opacity = '.5'; div.style.filter = 'alpha(opacity=50)'; document.body.appendChild(div); } function createPopUp(divId) { fadePage(); var div = document.getElementById(divId); div.style.left = 220; div.style.top = 220; div.style.position = 'absolute'; div.style.visibility = 'visible'; document.body.appendChild(div); } </script> <input type="button" onclick="createPopUp('test')"> <div id="test" style="visibility: hidden;"> Dit is test content met een <input type="button" value="button!"> </div> |
"Real software engineers work from 9 to 5, because that is the way the job is described in the formal spec. Working late would feel like using an undocumented external procedure."
Verwijderd
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
| <style> .overlay { left: 0; top: 0; width: 100%; height: 100%; position: absolute; background: #fff; opacity: .5; filter: alpha(opacity=50); visibility: hidden; } .popup { visibility: hidden; position: absolute; background: lime; } </style> <script> function createPopUp(divId) { var overlay = document.getElementById('overlay'); overlay.style.visibility = 'visible'; document.body.appendChild(overlay); var popup = document.getElementById(divId); var top = (window.innerHeight / 2) - (popup.style.height.substr(0,3) / 2); var left = (window.innerWidth / 2) - (popup.style.width.substr(0,3) / 2); popup.style.top = top +'px'; popup.style.left = left +'px'; popup.style.visibility = 'visible'; document.body.appendChild(popup); } function deletePopUp(divId) { var overlay = document.getElementById('overlay'); overlay.style.visibility = 'hidden'; document.body.appendChild(overlay); var popup = document.getElementById(divId); popup.style.visibility = 'hidden'; document.body.appendChild(popup); } </script> <input type="button" onclick="createPopUp('test')" value="klik!"> <div id="overlay" class="overlay"> <div id="test" class="popup" style="width: 200px; height: 100px;"> Dit is test content met een <input type="button" onclick="deletePopUp('test');" value="button!"> </div> |
[ Voor 24% gewijzigd door Reveller op 13-11-2006 22:54 ]
"Real software engineers work from 9 to 5, because that is the way the job is described in the formal spec. Working late would feel like using an undocumented external procedure."
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
| <html> <head> <style> .overlay { left: 0; top: 0; width: 100%; height: 100%; position: absolute; background: #fff; opacity: .5; filter: alpha(opacity=50); visibility: hidden; } .popup { visibility: hidden; position: absolute; background: lime; } </style> <script> function createPopUp(divId) { var overlay = document.getElementById('overlay'); overlay.style.visibility = 'visible'; document.body.appendChild(overlay); var popup = document.getElementById(divId); var top = (window.innerHeight / 2) - (popup.style.height.substr(0,3) / 2); var left = (window.innerWidth / 2) - (popup.style.width.substr(0,3) / 2); popup.style.top = top +'px'; popup.style.left = left +'px'; popup.style.visibility = 'visible'; document.body.appendChild(popup); } function deletePopUp(divId) { var overlay = document.getElementById('overlay'); overlay.style.visibility = 'hidden'; document.body.appendChild(overlay); var popup = document.getElementById(divId); popup.style.visibility = 'hidden'; document.body.appendChild(popup); } function movePopUp(divId) { if (document.getElementById('overlay').style.visibility == 'visible') createPopUp(divId); } </script> </head> <body onResize="movePopUp('test');"> <input type="button" onclick="createPopUp('test')" value="klik!"> <div id="overlay" class="overlay"> <div id="test" class="popup" style="width: 200px; height: 100px;"> Dit is test content met een <input type="button" onclick="deletePopUp('test');" value="button!"> </div> </body> </html> |
You, me, us, together, me, us, you, we, us, you, me... DONE.
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
| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html lang="nl"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>Untitled</title> <style type="text/css"> #popup { position:absolute; top:50%; left:50%; height:100px; width:200px; background:lime; margin-top:-50px; margin-left:-100px; } </style> </head> <body> <div id="popup"> <p>Dit is een test.</p> </div> </body> </html> |
“The best way to get the right answer on the Internet is not to ask a question, it's to post the wrong answer.”
QA Engineer walks into a bar. Orders a beer. Orders 0 beers. Orders 999999999 beers. Orders a lizard. Orders -1 beers.
Hmm, kom er net achter dat je voorbeeld alleen in FF werkt en niet in IEReveller schreef op maandag 13 november 2006 @ 21:13:
@Cheatah - nu aangepast mbv css. Hoop dat het nu netjes isIk heb alleen 1 probleem: hoe kan ik ervoor zorgen dat de popup-div realtime opschuift (en dus in het midden van de pagina blijft) als ik de browser resize? Hoe kan ik een onresize actie meegeven die realtime de top en left positie van de popup verandert?
You, me, us, together, me, us, you, we, us, you, me... DONE.
Doe dat dan gewoon op de juiste manier:OkkE schreef op dinsdag 14 november 2006 @ 08:56:
Je kunt het ook d.m.v. CSS een element in het midden van de pagina laten centreren. Het werkt iig in Firefox en IE7.
1
| #popup {margin: 0 auto 0 auto;} |
[/offtopic]
Je hebt gelijk, ik heb weer eens niet goed gelezenOkkE schreef op dinsdag 14 november 2006 @ 11:03:
[...]
Dat is een prima oplossing als je 'm alleen horizontaal wilt centreren.![]()
Wil je 'm echt in het midden hebben, ook vertikaal, dan zal je het toch op zo'n manier als ik poste moeten doen..
[ Voor 32% gewijzigd door mithras op 14-11-2006 11:12 ]
Dat is een prima oplossing als je 'm alleen horizontaal wilt centreren.mithras86 schreef op dinsdag 14 november 2006 @ 10:57:
[...]
Doe dat dan gewoon op de juiste manier:
Cascading Stylesheet:Heb je geen left attribuut, negatieve margins of absolute positionering nodig
1 #popup {margin: 0 auto 0 auto;}
[/offtopic]
Wil je 'm echt in het midden hebben, ook vertikaal, dan zal je het toch op zo'n manier als ik poste moeten doen..
“The best way to get the right answer on the Internet is not to ask a question, it's to post the wrong answer.”
QA Engineer walks into a bar. Orders a beer. Orders 0 beers. Orders 999999999 beers. Orders a lizard. Orders -1 beers.
One thing's certain: the iPad seriously increases toilet time.. tibber uitnodigingscode: bqufpqmp
Lightbox gebruikt eenzelfde principe om afbeeldingen weer te geven. Echter is dit gewoon een stukje javascript wat iedereen zelf kan gebruiken. Lightbox is handig omdat je alleen het javascriptje hoeft te laden, en dan met een rel attribuut het plaatje met lightbox kan tonen.kmf schreef op dinsdag 14 november 2006 @ 17:25:
Is dat niet gewoon een lightboximplementatie? lightbox, tightbox, whateverbox?
Het idee van 100% * 100% div en daaroverheen iets anders plakken is gewoon iets van js.
Ik snap niet waarom deze error gegenereerd wordt ("overlay" bestaat immers gewoon), laat staan dat ik het kan oplossenError: document.getElementById("overlay") has no properties
Source File: file:///bla
Line: 49
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
| <html> <head> <style> .overlay { left: 0; top: 0; width: 100%; height: 100%; position: absolute; background: #fff; opacity: .5; filter: alpha(opacity=50); visibility: hidden; } .popup { top:50%; left:50%; visibility: hidden; position: absolute; background: lime; } </style> <script> function createPopUp(divId) { var overlay = document.getElementById('overlay'); overlay.style.visibility = 'visible'; document.body.appendChild(overlay); var popup = document.getElementById(divId); popup.style.marginTop = '-'+ popup.style.height.substr(0,3) / 2 +'px'; popup.style.marginLeft = '-'+ popup.style.width.substr(0,3) / 2 +'px'; popup.style.visibility = 'visible'; document.body.appendChild(popup); } function deletePopUp(divId) { var overlay = document.getElementById('overlay'); overlay.style.visibility = 'hidden'; document.body.appendChild(overlay); var popup = document.getElementById(divId); popup.style.visibility = 'hidden'; document.body.appendChild(popup); } function movePopUp(divId) { if (document.getElementById('overlay').style.visibility == 'visible') { createPopUp(divId); } } function addResizeEvent(func) { var oldOnresize = window.onresize; if (typeof window.onresize != 'function') { window.onresize = func; } else { window.onResize = function() { oldOnresize(); func(); } } } addResizeEvent(movePopUp('test')); </script> </head> <body> <input type="button" onclick="createPopUp('test')" value="klik!"> <div id="overlay" class="overlay"> <div id="test" class="popup" style="width: 200px; height: 100px;"> Test content met een <a href="#" onclick="deletePopUp('test');">link</a> </div> </body> </html> |
[ Voor 4% gewijzigd door Reveller op 14-11-2006 23:10 ]
"Real software engineers work from 9 to 5, because that is the way the job is described in the formal spec. Working late would feel like using an undocumented external procedure."
- Popup.style.height.substr(0,3) -> parseInt(popup.style.height)
- Vergeet type="application/javascript" (of type="text/javascript" voor antieke browsers) niet bij je script-elementen.
- Vergeet doctype niet. Voorkomt ellendige quirksmode-rendering-problemen
- Je zou het OO kunnen maken, mocht je van SM houden
Reveller schreef op dinsdag 14 november 2006 @ 22:43:
Ik snap niet waarom deze error gegenereerd wordt ("overlay" bestaat immers gewoon), laat staan dat ik het kan oplossenWie weet het wel?
1
| addResizeEvent(movePopUp('test')); |
Ik vermoed dat daar je movePopUp al word aangeroepen, en dat is tijdens het laden van de pagina, dus nog voor dat er een #overlay bestaat
Grote prutser schreef op dinsdag 14 november 2006 @ 23:27:
[...]
JavaScript:
1 addResizeEvent(movePopUp('test'));
Ik vermoed dat daar je movePopUp al word aangeroepen, en dat is tijdens het laden van de pagina, dus nog voor dat er een #overlay bestaat
1
| //addResizeEvent(movePopUp('test')); |
Inderdaad, comment het en het werkt, in zowel FF als IE.
You, me, us, together, me, us, you, we, us, you, me... DONE.

