Avatar billede sukos Juniormester
13. juni 2004 - 08:54 Der er 5 kommentarer og
1 løsning

Lave fade på en rotate funktion

Hej
Jeg har flg.

<script language="JavaScript">
<!--
adTekst = new Array("P&aring; sporet af en vellykket fest",
"Musik for b&aring;de store som sm&aring;",
"Festlig underholdning i sang og toner",
"Oplev en sprudlende harmonika");

curDate = new Date();
curSec = curDate.getSeconds();
adNr = curSec % adTekst.length;
adTimer = 0;

function rotate(){
adNr = adNr + 1;
  if (adNr >= adTekst.length) {
    adNr = 0;
    }

if (document.all) {
document.all.showText.innerHTML = adTekst[adNr];
}else if (document.getElementById) {
document.getElementById("showText").innerHTML = adTekst[adNr];
    }
  adTimer = setTimeout("rotate()",8000);
}
// -->
</script>

</head>
<body onload="rotate();">

Så mine spm.

1. Er der noget jeg bør ændre i ovenstående?
Tænker her mest på:
if (document.all) {
document.all.showText.innerHTML = adTekst[adNr];
}else if (document.getElementById) {
document.getElementById("showText").innerHTML = adTekst[adNr];
    }

2. Kan man lave noget cross-browser som kan fade teksten, så den ikke bare pludselig skifter? Og hvis ja, hvordan? :O)

Jeg har prøvet at søge lidt rundt omkring, til 2'eren, men javascript og mig har det ikke så godt sammen!
Avatar billede knudx Nybegynder
13. juni 2004 - 12:49 #1
1.: næ det ser fint ud, selvom det godt kan optimeres lidt. Jeg ville bytte om på if-sætningen:
var el;
if (document.getElementById) {
    el = document.getElementById("showText");
}else if (document.all) {
    el = document.all.showText;
}
if (!!el) el.innerHTML = adTekst[adNr];

2.:
du kan godt lave gennemsigtighed m. css - men kun i Mozilla og IE, og på hver sin måde:
<style>
#element {
-moz-opacity:.5;        /*mozilla*/
filter: alpha(opacity=50);     /*IE*/}
</style>

så kan du lave en timer-animation til at fade teksten ind over... Måden man tilgår ie's "filter" på i javascript er lidt speciel, man kunne fx

function setOpacity (element, opacity) {
    if (element.filters) element.filters.alpha.opacity = opacity; // IE, værdi 0 -> 100
    else element.style.MozOpacity = opacity / 100;  //Mozilla, bemærk værdi 0 -> 1
}
Avatar billede roenving Novice
13. juni 2004 - 13:23 #2
Fadeover slideshow/rotation: http://www.eksperten.dk/spm/478961
Avatar billede sukos Juniormester
13. juni 2004 - 20:27 #3
hmhmhm, jeg har ikke fået kikket på det, må blive her en af dagene!
og ellers tak for respons, so far! :O)
Avatar billede sukos Juniormester
16. juni 2004 - 08:15 #4
knudx -> Du må gerne lige lægge et svar for den ændring du foreslog.

Det med fade, det kan jeg ikke lige styre! :O)

Det må prøves af en anden dag.
Avatar billede sukos Juniormester
17. juni 2004 - 20:51 #5
Har forresten besluttet mig for en flash løsning!

Og knudx, læg lige et svar! :O)
Avatar billede sukos Juniormester
23. juni 2004 - 06:24 #6
knudx, du må lige sige til, hvis du vil ha' lidt point.
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester