Avatar billede mrfunder Nybegynder
14. marts 2007 - 08:18 Der er 4 kommentarer og
1 løsning

Fade in, fade out.. blink

Hej Eksperter. Er der nogle der kan omskrive denne kode for mig? Meningen er at den skal blinke frem og tilbage, fra 0 opacity til 100 opacity.. ikke blinke, men altså fade :-)
Dette skal den ellers gøre forevigt, eller indtil anden style sættets på mit object

http://roenving.users.whitehat.dk/WD5Opacity.html
Avatar billede mrfunder Nybegynder
14. marts 2007 - 16:11 #1
Er dette ikke muligt? Altså at mit element bliver ved med først at fade ind, så ud og forfra
Avatar billede jhe-ting Nybegynder
14. marts 2007 - 17:25 #2
Jo - man kan hvad man vil, bare der er tid og penge nok.

Jeg tror det vil være svært at standse/stur en blinker med en style, der 'bare' kan sættes på et element.

Den løsning du har fundet hos roenving kan udbygges med f.eks. en call-back der kan bruges til at skifte mellem fade-in og fade-out.
Avatar billede jhe-ting Nybegynder
14. marts 2007 - 17:28 #3
(standse/styre) hvilken hændelse skal bevirke at blinkeren standses eller startes?
Avatar billede jhe-ting Nybegynder
15. marts 2007 - 02:09 #4
Måske kan du bruge noget fra dette eksempel jeg har lavet udfra roenving's demo

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Opacity Blinker (demo)</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="javascript" type="text/javascript">
// fra http://roenving.users.whitehat.dk/Kode/WD5Kode.html
var OpC = new Array();
var ie,moz,css3; function startOpChange(elm,end,tim,fun){
  ie = !!elm.filters;
  moz = elm.style.MozOpacity != undefined;
  css3 = elm.style.opacity != undefined;
  if (!ie && !moz && !css3)return;
  var idx = OpC.length;
  for(var i=0;idx>i;i++){
    if(OpC[i][0]==elm){
      clearInterval(OpC[i][4]);
      idx = i;
      break;
    }
    OpC[idx] = new Array();
  }
  if(idx==0)OpC[idx] = new Array();
  var actOp;
  if(ie)actOp=elm.filters.alpha.opacity;
  else if(css3)actOp=(elm.style.opacity*100);
  else actOp=(elm.style.MozOpacity*100);
  if (actOp!=end){
    OpC[idx][0]=elm;
    OpC[idx][1]=actOp;
    OpC[idx][2]=end;
    OpC[idx][3]=(end>actOp)?1:-1;
    var delayTime = Math.floor((tim*1000)/Math.abs((actOp-end)));
    OpC[idx][5]=fun?fun:null;                                  // JHe
    OpC[idx][6]=tim;                                            // JHe
    OpC[idx][4]=setInterval("opChange("+idx+")",delayTime);
  }
}

function opChange(idx){
  OpC[idx][1]+=OpC[idx][3];
  if (ie)OpC[idx][0].filters.alpha.opacity=OpC[idx][1];
  else if(css3)OpC[idx][0].style.opacity=Math.min(0.99,OpC[idx][1]/100);
  else OpC[idx][0].style.MozOpacity=Math.min(0.99,OpC[idx][1]/100);
  if (OpC[idx][1]==OpC[idx][2]){
    clearInterval(OpC[idx][4]);
    if (typeof OpC[idx][5] == 'function') OpC[idx][5](OpC[idx][0], OpC[idx][6], OpC[idx][1]); // JHe
    return;
  }
}

// JHe
function toggleBlink(elm,tim,actOp){
    startOpChange(elm,(actOp>50)?0:100, tim, toggleBlink);
}

function startBlinker(elm,tim){
    startOpChange(elm,100,tim,toggleBlink);
}

function stopBlinker(elm){
    startOpChange(elm,100,0);
}

</script>
<style type="text/css">
.absBlock1 {
    position:absolute;
    top:25px; left:20px;
    width:200px; height:100px
}
.absBlock2 {
    position:absolute;
    top:250px; left:20px;
    width:200px; height:100px
}
.back {
    z-index:1;
}
.front {
    z-index:10;
    opacity:0.0;
    -moz-opacity:0.0;
    filter:alpha(opacity=0);
}
</style>
</head>

<body onload="startBlinker(document.getElementById('blink1'),1)">
<div class="absBlock1 front"
    onmouseover="stopBlinker(this);"
    onmouseout="startBlinker(this,1);"
    style="color:#F88; background-color:#048"
    id="blink1"><br><br> En div der blinker</div>
<div class="absBlock1 back"  style="color:#000; background-color:#FFF"><br><br>En div der blinker</div>

<div class="absBlock2 front"
    onmouseover="stopBlinker(this);"
    onmouseout="startBlinker(this,1);"
    style="color:#8CC; background-color:#840"
    id="blink2"><br><br> En div til der blinker <br>(onmouseover and -out)</div>
<div class="absBlock2 back"  style="color:#000; background-color:#FFF"><br><br>En div til der blinker <br>(onmouseover and -out)</div>
</body>
</html>
Avatar billede jhe-ting Nybegynder
17. marts 2007 - 13:27 #5
;o)  Tak og held og lykke.
PS:  Du har vel lagt mærke til at FF2 og IE6 reagerer ret forskelligt på "stopBlinker()".
      Stadig mulighed for forbedring ...
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

IT-JOB