Ik heb een stukje javascript om een bepaalde div layer de hoogste zIndex te geven.
Nou zie je hieronder de code, deze code moet werken in firefox en opera. i khou verder geen rekening met andere browsers
Het probleem is als volgt:
als ik begin met: var highestIndex = 0; dan doet hij het totdat rows[i].style.zIndex 10 is.
als ik begin met: var highestIndex = 10; dan doet hij het totdat rows[i].style.zIndex 100 is.
eigenlijk komt het eropneer dat de if[ if(rows[i].style.zIndex > highestIndex) ] wel werkt zolang de lengte van de getallen hetzelfde is maar zodra de ene een lengte van 2 heeft bijvoorbeeld en de ander maar van 1 dan werkt deze functie niet meer.
nou heb ik var highestIndex = 10000001; dus je kan ongeveer 98 miljoen keer iets van zIndex veranderen maar ik zie het het liefst opgelost
Misschien dat ik zelf wat over het hoofd gezien heb maar heb al getest met een hoop alerts etc. om te ontdekken dat dit het probleem is.
Ik heb ook de if functie vervangen door:
if(100 > 99) <- werkte zoals verwacht
if(parseFloat(rows[i].style.zIndex) >parseFloat( highestIndex)) <- nog steeds problemen als de linkse 1 teken langer is
Nou hoop ik dat iemand dit probleem voor mij kan oplossen.
In iedergeval alvast bedankt voor het lezen van mijn bericht
Nou zie je hieronder de code, deze code moet werken in firefox en opera. i khou verder geen rekening met andere browsers
Het probleem is als volgt:
als ik begin met: var highestIndex = 0; dan doet hij het totdat rows[i].style.zIndex 10 is.
als ik begin met: var highestIndex = 10; dan doet hij het totdat rows[i].style.zIndex 100 is.
eigenlijk komt het eropneer dat de if[ if(rows[i].style.zIndex > highestIndex) ] wel werkt zolang de lengte van de getallen hetzelfde is maar zodra de ene een lengte van 2 heeft bijvoorbeeld en de ander maar van 1 dan werkt deze functie niet meer.
nou heb ik var highestIndex = 10000001; dus je kan ongeveer 98 miljoen keer iets van zIndex veranderen maar ik zie het het liefst opgelost
Misschien dat ik zelf wat over het hoofd gezien heb maar heb al getest met een hoop alerts etc. om te ontdekken dat dit het probleem is.
Ik heb ook de if functie vervangen door:
if(100 > 99) <- werkte zoals verwacht
if(parseFloat(rows[i].style.zIndex) >parseFloat( highestIndex)) <- nog steeds problemen als de linkse 1 teken langer is
Nou hoop ik dat iemand dit probleem voor mij kan oplossen.
In iedergeval alvast bedankt voor het lezen van mijn bericht
code:
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
| var highestIndex = 10000001; function setZIndexes(window_id) { var count = 0; var class; var rows = document.getElementsByTagName('div'); for (i=0; i<rows.length; i++) { if((rows[i].id == 'window') ) { if(rows[i].className.split(' ') == (window_id)) { class = rows[i]; } else { if(rows[i].style.zIndex > highestIndex) { highestIndex = rows[i].style.zIndex; } } } } class.style.zIndex = parseFloat(highestIndex) + 1; rebuildTaskBar(class.className); } |
[ Voor 5% gewijzigd door hellfighter87 op 29-12-2008 22:30 ]