Op mijn website maak ik gebruik van opacity om bepaalde meldingen extra kracht bij te zetten. De meldingen worden buiten de hoofdcontainer gezet, en de hoofdcontainer wordt dan lichter gemaakt:
Dit werkt prima wanneer ik met php de melding genereer. Sommige dingen kunnen echter clientside gegenereerd worden, en dan wil ik daar, vanwege snelheid, graag gebruik van maken
.
Hier gaat het echter mis. Het element wordt op de juiste plek ingevoegd (precies hetzelfde als wanneer ik dat met PHP doe), echter de container wordt niet lichter.
De functie die ik gebruik om de melding aan te maken is als volgt:
Zoals je ziet wordt deze in de body precies voor de div#container ingevoegd, en zou het geheel dus moeten werken. Heeft iemand enig idee wat er mis gaat?
Cascading Stylesheet:
1
2
3
4
| div#confirm + div#container { opacity: 0.5; } |
Dit werkt prima wanneer ik met php de melding genereer. Sommige dingen kunnen echter clientside gegenereerd worden, en dan wil ik daar, vanwege snelheid, graag gebruik van maken
Hier gaat het echter mis. Het element wordt op de juiste plek ingevoegd (precies hetzelfde als wanneer ik dat met PHP doe), echter de container wordt niet lichter.
De functie die ik gebruik om de melding aan te maken is als volgt:
JavaScript:
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
| function requestConfirm(question, cancelHref, confirmHref) { var div = document.createElement('div'); var close = document.createElement('a'); var img = document.createElement('img'); var p = document.createElement('p'); var pText = document.createTextNode(question); var cancelLink = document.createElement('a'); var cancelText = document.createTextNode('Annuleren'); var confirmLink = document.createElement('a'); var confirmText = document.createTextNode('OK'); var body = document.getElementsByTagName('body').item(0); var container = document.getElementById('container'); div.setAttribute('id', 'confirm'); close.setAttribute('class', 'close'); close.setAttribute('title', 'Sluiten'); close.setAttribute('href', cancelHref); div.appendChild(close); img.setAttribute('src', 'images/alert_icon.png'); img.setAttribute('alt', 'Let op!'); div.appendChild(img); div.appendChild(p); p.appendChild(pText); cancelLink.setAttribute('href', cancelHref); cancelLink.appendChild(cancelText); p.appendChild(cancelLink); confirmLink.setAttribute('href', confirmHref); confirmLink.appendChild(confirmText); p.appendChild(confirmLink); body.insertBefore(div, container) } |
Zoals je ziet wordt deze in de body precies voor de div#container ingevoegd, en zou het geheel dus moeten werken. Heeft iemand enig idee wat er mis gaat?
[ Voor 34% gewijzigd door cyberstalker op 17-07-2006 18:20 ]
Ik ontken het bestaan van IE.