Avatar billede cybermaster Nybegynder
28. januar 2004 - 12:53 Der er 20 kommentarer og
1 løsning

Ved onmouseover vis pic ovenpå pic + tekst + pic i celle

Hejsa alle sammen,

jeg har en rækkebilleder der alle er i 200 x 200 px.
jeg viser dem i 60 x 60.

Når man fører musen over et billedet, vil jeg gerne have der kommer en lille efekt på det billedet musen er over, at der vises et gif billedet oven på (det er transparant i 60 x 60)

Samtidigt har jeg 2 celler, i den ene celle skal billedet vises i 200 x 200 px (oprindelig størelse) i den anden celle skal der være mulighed for at skrive en tekst.

Håber i kan knækken nøden for mig.

Hvis i har nogen spørgsmål må i endelig stille dem.

Jeg er væk fra computeren til kl. 14:30
Avatar billede cybermaster Nybegynder
28. januar 2004 - 12:57 #1
glemte lige en ting, når man går fra det ene pic til det andet, skal der være fade i cellen med billedet, og cellen med teksten,
Avatar billede roenving Novice
28. januar 2004 - 14:04 #2
Sådan noget ?-)

(Du kan i øvrigt se noget fade her: http://roenving.users.whitehat.dk/WD5Opacity.html !-)

<script type="text/javascript">
function show(action,obj){
  if(action==1){
    if(obj.filters)obj.filters.alpha.opacity = 100;
    else this.style.MozOpacity = 1;
    document.images[0].src = obj.parentNode.childNodes[0].src;
  }else{
    if(obj.filters)obj.filters.alpha.opacity = 0;
    else this.style.MozOpacity = 0;
   
  }
}
</script>

<body>
<img src="" width="200px" height="200px;"><br>
<div style="position:relative">
<img src="../billede.jpg" style="position:relative;width:60px;height:60px;">
<img src="../eksperten_logo_new.gif" style="position:absolute;top:0px;left:0px;width:60px;height:60px;filter:alpha(opacity=0);-moz-opacity:0;" onmouseover="show(1,this)" onmouseout="show(0,this)">
</div>
</body>
Avatar billede cybermaster Nybegynder
28. januar 2004 - 16:08 #3
alá det men mangler et par ting, samt synes ikke det funger helt
Avatar billede roenving Novice
28. januar 2004 - 16:16 #4
Jeg ville ikke bruge en masse tid, hvis det var noget andet, du havde brug for, så jeg nøjedes med henvisningen til fade-scriptet og oprettede ikke tekst-boxen !-)
Avatar billede cybermaster Nybegynder
28. januar 2004 - 16:53 #5
Det er det jeg er ude efter, du må meget gerne hvis og når du har tid :-)
Avatar billede cybermaster Nybegynder
29. januar 2004 - 14:58 #6
roenving, er det noget du har lyst til at lave, eller skal jeg lukke?
Avatar billede roenving Novice
29. januar 2004 - 22:47 #7
-- jeg har dig liggende øvert i min mail-liste, så jeg skal nok forfølge den, men det bliver måske først i morgen, jeg har lige haft noget skole og møder og så'n !-)
Avatar billede cybermaster Nybegynder
30. januar 2004 - 10:43 #8
Oki, det er bare supert ;-)
Avatar billede roenving Novice
30. januar 2004 - 18:31 #9
Jeg måtte arbejde utroligt meget med at fp positioneret div'erne, jeg har brugt, hvis du har tænkt dig at arbejde med tabeller bliver det en del nemmere !-)

Men sådan kom den nogelunde på plads:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Ved onmouseover vis pic ovenpå pic + tekst + pic i celle</title>
<meta name="keywords" content="roenving,http://www.eksperten.dk/spm/458054">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
body{
margin:0px;
padding:0px;
}
div{
/*border:1px solid red;*/
margin:0px;
padding:0px;
}
</style>
<script type="text/javascript">
var OpC = new Array();
var endOpC = new Object();
var ie = (document.all)?true:false;
var moz = (navigator.userAgent.indexOf("Gecko")>-1)
function startOpChange(elm,end,tim){
  if (!ie && !moz)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();
   
    if(ie)actOp=elm.filters.alpha.opacity;
    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)));
    //alert(tim*1000+"\n"+delayTime);
    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 OpC[idx][0].style.MozOpacity=Math.min(0.99,OpC[idx][1]/100);
  if (OpC[idx][1]==OpC[idx][2]){
    clearInterval(OpC[idx][4]);
    return;
  }
}

function show(action,obj,txt){
  if(action==1){
    startOpChange(obj,100,0.2);
    document.images[0].src = obj.parentNode.childNodes[0].src;
    document.getElementById('billedTekst').innerHTML = txt;
  }else{
    startOpChange(obj,0,0.2);
  }
}
</script>
</head>
<body>
<div style="position:relative;top:0px;left:0px;">
<div style="width:200px;height:200px;float:left;margin:5px;"><img src="../eksperten_logo_new.gif" alt="Vis billede" style="width:200px;height:200px;background:url('../eksperten_logo_new.gif');"></div>
<div id="billedTekst" style="position:relative;top:0px;left:0px;float:left;text-align:center;vertical-align:middle;width:200px;height:200px;background:#eee;font-family:verdana,sans-serif;font-size:14px;margin:5px;">Oplysninger om billede</div>
<div style="width:1px;height:210px;margin:5px;"></div></div>

<div style="position:relative;float:left;margin:5px;"><img src="../billede.jpg" style="position:relative;width:60px;height:60px;">
<img src="../eksperten_logo_new.gif" style="position:absolute;top:0px;left:0px;width:60px;height:60px;filter:alpha(opacity=0);-moz-opacity:0;" onmouseover="show(1,this,'<br>Forside-billede fra \47The Players Guide to the DragonLance Campain\47, 1993 <br>-- Dragonlance \4785 <br>tegnet af <a href=\42http://larryelmore.com\42 target=\42_blank\42 style=\42background:inherit;text-decoration:none;color:#8D1D31;\42 title=\42Larry\47s hjemmeside\42>Larry Elmore</a><br>Nr. 1')" onmouseout="show(0,this)">
</div>

<div style="position:relative;float:left;margin:5px;"><img src="../billede.jpg" style="position:relative;width:60px;height:60px;">
<img src="../eksperten_logo_new.gif" style="position:absolute;top:0px;left:0px;width:60px;height:60px;filter:alpha(opacity=0);-moz-opacity:0;" onmouseover="show(1,this,'<br><br>Dragonlance \4785 <br>Nr. 2')" onmouseout="show(0,this)">
</div>

<div style="position:relative;float:left;margin:5px;"><img src="../billede.jpg" style="position:relative;width:60px;height:60px;">
<img src="../eksperten_logo_new.gif" style="position:absolute;top:0px;left:0px;width:60px;height:60px;filter:alpha(opacity=0);-moz-opacity:0;" onmouseover="show(1,this,'<br><br>Dragonlance \4785 <br>Nr. 3')" onmouseout="show(0,this)">
</div><br>
</body>
</html>

PS.
1. Nu har jeg angivet teksten direkte i kaldet, det kunne være hensigtsmæssigt at finde dem på andre måder, men kræver så en anelse anderledes programmering !-)
2. Styles er også angivet direkte i tags, også dem kunne man flytte til et stylesheet (inline som noget af det eller som linket eller importeret fil).
3. Det image, som bruges som kilde (<img src="../billede.jpg" ... ) _skal_ stå på samme linje som div'en for at Mozilla og IE opfører sig ens.
Avatar billede cybermaster Nybegynder
30. januar 2004 - 19:19 #10
roenving -->> Det ser rigtigt godt ud, dog er der nogle enkelte ting.

Den fade efekt der kommer oven på, skulle ikke være der, men på det store billedet, så der fades mellem de 2 billeder der vises, og også gerne der hvor teksten er, hvis det er muligt.

Mht. Tabeller, så havede jeg tænkt mig at bruge tabeller.

Mht. style, må du meget gerne lave det som du forslår.

Ellers ser det rigtigt godt ud.
Avatar billede cybermaster Nybegynder
30. januar 2004 - 19:22 #11
p.s. hvis du vil lave det med tabeller, ville det være fedt.
Avatar billede cybermaster Nybegynder
30. januar 2004 - 19:26 #12
jeg har tilladt mig at afsætte flere point, da det er langt større arbejde for dig, end jeg umidelbart have trodet.
Avatar billede cybermaster Nybegynder
02. februar 2004 - 16:30 #13
roenving -> er det noget jeg kan lokke dig til?
Avatar billede roenving Novice
03. februar 2004 - 17:18 #14
Jeg havde fået slettet linket, så jeg havde ikke fået fundet det igen endnu !-)
Avatar billede roenving Novice
03. februar 2004 - 18:36 #15
Ikke alle problemer er løst, men det virker både i IE6 og Mozilla1.5, og dermed sandsynligvis også de nyere Netscape og andre Gecko-browsere ...

(der findes et blendTrans-filter i IE, som kunne have løst den mere direkte, men jeg arbejdede videre med det ud fra min egen filosofi om, at man kun laver browser-specifikke løsninger, når der ikke er andre muligheder !-)

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Ved onmouseover vis pic ovenpå pic + tekst + pic i celle</title>
<meta name="keywords" content="roenving,http://www.eksperten.dk/spm/458054">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
body{
margin:0px;
padding:0px;
}
.stortBillede{
  position:absolute;
  top:0px;
  left:0px;
  width:200px;
  height:200px;
  background:url('../eksperten_logo_new.gif');
}
tr{
  position:relative;
  top:0px;
  left:0px;
}
.picTd{
  position:relative;
  top:0px;
  left:0px;
  width:220px;
  height:220px;
  padding:0px;
  margin:0px;
  border:0px;
  vertical-align:top;
}
#billedTekst{
  text-align:center;
  font-family:tahoma,verdana,sans-serif;
  font-size:large;
}
.miniPicDiv{
  position:relative;
  float:left;
  margin:3px;
}
.miniPic{
  width:60px;
  height:60px;
}
</style>
<script type="text/javascript">
var OpC = new Array();
var endOpC = new Object();
var ie = (document.all)?true:false;
var moz = (navigator.userAgent.indexOf("Gecko")>-1)
function startOpChange(elm,end,tim){
  if (!ie && !moz)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();
   
    if(ie)actOp=elm.filters.alpha.opacity;
    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)));
    if(10>delayTime){
      var mult = Math.ceil(10/delayTime);
      delayTime *= mult;
      OpC[idx][3] *= mult;
    }
    //alert(tim+"\n"+tim*1000+"\n"+delayTime);
    OpC[idx][4]=setInterval("opChange("+idx+")",delayTime);
  }
}
function opChange(idx){
  OpC[idx][1]+=OpC[idx][3];
  if(OpC[idx][1]>100)OpC[idx][1]=100;
  if (ie)OpC[idx][0].filters.alpha.opacity=OpC[idx][1];
  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]);
    return;
  }
}

var bil = new Array();
var actBil = 1;
function initStBil(){
bil[0] = document.getElementById('billed1');
bil[1] = document.getElementById('billed2');
bil[2] = document.getElementById('billed3');
bil[3] = document.getElementById('billed4');
bil[4] = document.getElementById('billed5');
}

function show(act,obj,txt){
  if(act==1){
    startOpChange(bil[actBil],0,0.5);
    actBil = (actBil+1)%5;
    startOpChange(bil[actBil],100,0.5);
    bil[actBil].src = obj.src;
    document.getElementById('billedTekst').innerHTML = txt;
  }else{
 
  }
}
function restoreOrg(){
  for(i=0;bil.length>i;i++){
    bil[i].src = bil[i].lowsrc;
  }
}
</script>
<body onload="initStBil();">
<table style="border-collapse:collapse;position:relative;top:0px;left:0px;">
  <tr>
    <td class="picTd">
      <img id="billed1" class="stortBillede" src="../eksperten_logo_new.gif" lowsrc="../eksperten_logo_new.gif" alt="" style="filter:alpha(opacity=0);-moz-opacity:0;">
      <img id="billed2" class="stortBillede" src="../eksperten_logo_new.gif" lowsrc="../eksperten_logo_new.gif" alt="" style="filter:alpha(opacity=100);-moz-opacity:1;"></td>
      <img id="billed3" class="stortBillede" src="../eksperten_logo_new.gif" lowsrc="../eksperten_logo_new.gif" alt="" style="filter:alpha(opacity=0);-moz-opacity:0;">
      <img id="billed4" class="stortBillede" src="../eksperten_logo_new.gif" lowsrc="../eksperten_logo_new.gif" alt="" style="filter:alpha(opacity=0);-moz-opacity:0;">
      <img id="billed5" class="stortBillede" src="../eksperten_logo_new.gif" lowsrc="../eksperten_logo_new.gif" alt="" style="filter:alpha(opacity=0);-moz-opacity:0;">
    <td class="picTd" style="vertical-align:middle;">
      <div id="billedTekst">BilledTekst</div></td>
  </tr>
  <tr>
    <td class="picTd" colspan="2"><!--  onmouseout="restoreOrg();" -->
      <div class="miniPicDiv">
        <img class="miniPic" src="../billede.jpg" alt="Vis billede" onmouseover="show(1,this,'<br>Forside-billede fra \47The Players Guide to the DragonLance Campain\47, 1993 <br>-- Dragonlance \4785 <br>tegnet af <a href=\42http://larryelmore.com\42 target=\42_blank\42 style=\42background:inherit;text-decoration:none;color:#8D1D31;\42 title=\42Larry\47s hjemmeside\42>Larry Elmore</a><br>Nr. 1');">
      </div>
      <div class="miniPicDiv">
        <img class="miniPic" src="../eksperten_logo_new.gif" alt="Vis billede" onmouseover="show(1,this,'Ekspertens Logo<br>Nr. 2');">
      </div>
      <div class="miniPicDiv">
        <img class="miniPic" src="../eksperten_logo_new.gif" alt="Vis billede" onmouseover="show(1,this,'Ekspertens Logo<br>Nr. 3');">
      </div></td>
  </tr>
</table>
</body>
</html>
Avatar billede cybermaster Nybegynder
18. februar 2004 - 11:41 #16
supert, ligger du et svar
Avatar billede roenving Novice
18. februar 2004 - 11:45 #17
Velbekomme '-)
Avatar billede cybermaster Nybegynder
18. februar 2004 - 11:48 #18
Det var extreamt hurtigt ;-) p.s. beklager ventetiden.

Glemte lige at sprørge om noget, hvordan sætter jeg tempoet op på fade funktionen.
Avatar billede roenving Novice
18. februar 2004 - 13:43 #19
Det var et af de problemer, som det ikke lykkedes mig at løse helt, men det kan være, at jeg ved at kigge på det igen, kan få det til at fungere endnu bedre ...

-- ellers er det sidste parameter i:

startOpChange(bil[actBil],0,0.5);

hvor de 0.5 er den tid den bruger i sekunder ...
Avatar billede cybermaster Nybegynder
04. marts 2004 - 14:56 #20
Supert, tak
Avatar billede roenving Novice
05. marts 2004 - 15:11 #21
-- og tak for points ;~}
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