14. december 2004 - 18:03Der er
9 kommentarer og 1 løsning
div layer
Opgave.
Skal have 10 layers der skal vises enkeltvis med 5 sekunders mellemrum.
Der skal være en knap indeni alle layers, der skal kunne gå til det sidste layer, og stoppe "timeren". Den skal først gå tilbage i sin cyklus når der trykkes på fortsæt som kun forekommer når der er trykket på knappen...
acceptere hvad? Det virker fint her (Mozilla Firefox 1.0) - hvis jeg altså har forstået spørgsmålet korrekt. Checker lige IE når jeg kommer ind i Windows engang.
okay, efter meget besvær fik jeg bakset det her sammen - håber det virker nogenlunde tilfredsstillende: <script type="text/javascript"> var layerId = "layer"; var lastButtonIdx = "sidsteKnap"; var antal_layers = 10; var antal_sekunder = 2; var timer,fadingTimer; var fadingTime = 2; // i ms var nextLayerOpacity = 0; var prevLayerOpacity = 100; var currentLayerIdx = 1; var currentLayerElm, previousLayerElm; var dOpacity = 5; // hvor meget den fader per gang (fra 1-100) var fadingSpeed; function changeLayer() { if (currentLayerIdx > antal_layers) {currentLayerIdx = 1;} if (arguments.length == 1) {prevIdx = arguments[0];} else {prevIdx = (currentLayerIdx == 1) ? antal_layers : currentLayerIdx-1;} previousLayerElm = document.getElementById(layerId+prevIdx); currentLayerElm = document.getElementById(layerId+currentLayerIdx); currentLayerElm.style.display = "block"; // beregner fade-timerens interval if ((currentLayerElm.filters || typeof currentLayerElm.style.MozOpacity != "undefined") && prevIdx != currentLayerIdx) { fadingSpeed = 100/dOpacity*fadingTime; fadingTimer = window.setInterval("fadeLayers();",fadingSpeed); } currentLayerIdx++; }
function startTimer() { timer = setInterval("changeLayer();",antal_sekunder*1000); } function stopTimer() { window.clearInterval(timer); if (fadingTimer) {stopFading();} }
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.