Avatar billede peterkopi Nybegynder
23. april 2005 - 13:49 Der er 28 kommentarer og
1 løsning

Skygge på billed <td>

Hej, jeg har prøvet at bruge CCS'en fra spm http://eksperten.dk/spm/435198

Jeg vil gerne lave en skygge th/under (skråt t.h. om man vil!), men jeg kan ikke få det til at fungere...
Gå ind på http://www.anne-egelund.dk/ og klik på en thumb. VENT med at klikke på de små billeder, før alle billederne er hentet. Klikker man mens de loader, kokser pop-up'en!)

Når man så ændrer baggrundsfarven (også kaldet "væg-farven") i pop-up'en, ser man tydeligt at der altså er noget af CSS'en der virker. Der er bare ingen skygge - hvorfor?
Avatar billede peterkopi Nybegynder
23. april 2005 - 13:56 #1
For en tydeligheds skyld: Skyggen skal være på selve TD'en, ikke på billedet, helst ikke som grafik men helst som CSS!
Jeg er ikke ved computeren fra lørdag kl. 14, men tjekker ind igen fra i morgen, søndag, eftermiddag..!
Avatar billede olebole Juniormester
23. april 2005 - 19:24 #2
<ole>

Det er der ikke noget at sige til, du ikke kan få til at virke. Du kan jo ikke lægge et div mellem tabelrækker:
    <tr><div class="shadeHolder"><td class="shadeTBL" align="center">

Scriptet er lavet til tabeller (og andre standalone-elementer) ... du kan ikke bruge det på celler.

/mvh
</bole>
Avatar billede peterkopi Nybegynder
24. april 2005 - 19:08 #3
Hej olebole, hvor er jeg glad for, at du oplyser mig - troede du var holdt op herinde? Dvs. jeg skal lave en selvstændig tabel til billedet.... Må jeg lige prøve, så lykkes det nok *crossyourfingersplease*
Avatar billede roenving Novice
24. april 2005 - 19:11 #4
Du kan bare lægge diven om billedet !-)
Avatar billede peterkopi Nybegynder
24. april 2005 - 19:27 #5
Jamen går det så ikke galt med td class=shadeTBL, roenving?
Avatar billede roenving Novice
24. april 2005 - 19:33 #6
Næh, ikke specielt, men du skal selvfølgelig ændre alle koder !-)

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Tomt dokument</title>
<meta name="Generator" content="Stone's WebWriter 4">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="shader.css">
<script language="javascript" type="text/javascript" src="shader.js"></script>
</head>
<body>
Testside<p>
<div class="shadeHolder">
<img class="shadeIMG" src="http://www.eksperten.dk/img/elogo.png">
</div>
</body>
</html>

.shadeHolder {
    position: relative;
}
.shadeTBL {
    position: relative;
    left: 0px;
    top: 0px;
    z-index: 5;
    background-color: #ffffff;
}
.shader {
    position: absolute;
    background-color: #000080;
}
.shadeIMG {
    position: relative;
    left: 0px;
    top: 0px;
    z-index: 5;
    background-color: #ffffff;
}

var startOpacity = 25; // Sæt selv start-opaciteten
var d=document;
function gA(o,tN){return o.getElementsByTagName(tN)}
function pI(s){return parseInt(s)}
function doShade(tbl) {
    var w, h, a, offset, opac, cont = (d.all)? tbl.parentElement : tbl.parentNode;
    w=pI(tbl.offsetWidth); h=pI(tbl.offsetHeight);
    a = new Array();
    var steps = (d.all && !window.createPopup)? 1 : 4; // Antal skygge-steps
    for (var i=1; i<steps+1; i++) {
        offset = i + "px";
        opac = startOpacity / i;
        a[a.length] = '<img class="shader" src="spacerblaa.gif" ';
        a[a.length] = 'style="width:'+w+'px;height:'+h+'px;left:'+offset+';top:'+offset+';z-index:'+i+';';
        if (d.all) a[a.length] = 'filter:alpha(opacity='+opac+')">';
        else a[a.length] = '-moz-opacity:'+(opac/100)+'">';
    }
    cont.innerHTML += a.join("");
}

function initShades() {
    if (d.layers) return; //bemærk dur ikke i NN4
    var aTbl = gA(d,"TABLE");
    for (var i=0; i<aTbl.length; i++) {
        if ( aTbl[i].className=="shadeTBL" ) doShade( aTbl[i] );
    }
    var aImg = gA(d,"IMG");
    for (var i=0; i<aImg.length; i++) {
        if ( aImg[i].className=="shadeIMG" ) doShade( aImg[i] );
    }
}
window.onload = initShades;
Avatar billede roenving Novice
24. april 2005 - 19:35 #7
-- og det er selvfølgelig 3 forskellige filer, først html-filen, så shader.css og til sidst shader.js !-)
Avatar billede peterkopi Nybegynder
24. april 2005 - 19:45 #8
Som jeg skrev til olebole 19:08:58, ville jeg prøve at lave en selvstændig tabel. Det har jeg gjort nu - resultatet kan ses ved at gå til http://www.anne-egelund.dk/ og klikke på en thumb.
Det eneste der ærgrer mig lidt er, at jeg synes det ser ud som om skyggen allerede begynder inde i den hvide ramme rundt om billedet. Men ellers er resultatet tilfredsstillende...
Avatar billede peterkopi Nybegynder
24. april 2005 - 19:47 #9
Min "Stones WW" siger godt nok, at der er fejl. Fejlfinding (F9) melder om 1 TABLE mere end /TABLE og lide sådan med TR og TD. Men kan det skyldes, at editoren ikke kan "se" dem her mon? --> Response.Write "</td></tr><table>"
Avatar billede peterkopi Nybegynder
24. april 2005 - 19:54 #10
Nå, det var mig der sov... Er fixet! Vil I begge være søde at lægge et svar, så ryger I på en fair deler for deltagelse og opklaring.. Tak skal I ha!
Avatar billede peterkopi Nybegynder
24. april 2005 - 19:57 #11
TIL FOLK PÅ JAGT EFTER SVARET: Løsningen endte med CSS'en fra spm http://eksperten.dk/spm/435198 sådan som beskrevet øverst! For at reducere sidestørrelsen kunne man godt overveje at lægge det hele ud som eksterne filer som præciseret af roenving 19:35:40. Det har jeg bare ikke gjort!
Avatar billede peterkopi Nybegynder
24. april 2005 - 20:01 #12
roenving: vedr. spm http://www.eksperten.dk/spm/606603 "Pop-up viser ikke HELE indholdet?" løste jeg det ved at øge størrelsen på den "yderste" tabel. Hvis du vil dele P med mig, lægger du bare et svar der også! *S*
Avatar billede roenving Novice
24. april 2005 - 20:02 #13
<table width="630" cellpadding="1" cellspacing="3" border=0 align="center"><tr><td align="center">
<div class="shadeHolder">
<img class="shadeTBL" src="images/galleri/04-Fotografens oeje akryl 30x50.jpg" alt="Klik på billedet for at lukke vinduet" border="0" width="177" height="215"onClick="window.close()"></div>
</td></tr>

-- og så tilpasse den ene funktion:

function initShadeTBLs() {
    if (d.layers) return;
    var aTbl = gA(d,"*");
    for (var i=0; i<aTbl.length; i++) {
        if ( aTbl[i].className=="shadeTBL" ) doShade( aTbl[i] );
    }
}
Avatar billede peterkopi Nybegynder
24. april 2005 - 20:53 #14
En af jer, der måske kan forklare mig, hvorfor i alverden min 'onClick' pludselig ikke fungerer længere..???

Her er den nye kode, linje 74-84:

<table width=630 cellpadding=1 cellspacing=3 border=0 align=center><tr><td>
<div class="shadeHolder"><table border=0 class="shadeTBL" align="center"><tr><td>
<%
response.write "<img src=""images/galleri/"& rs(8) &""" alt=""Klik på billedet for at lukke vinduet"" border=""0"" width=""" & rs(2) & """ height=""" & rs(1) & """onClick=""window.close()"">"
Response.Write "</td></tr><table border=0>"
Response.write "<br><br><tr><td class=""fed"">Titel:</td><td class=""fed""colspan=""2"">"& RS(6) &"</td></tr>"
Response.write "<tr><td>&nbsp;</td><td class=""tekst"">"& RS(7) &"</td></tr>"
Response.Write "<tr><td class=""fed"">Bredde:</td><td class=""tekst"">"& RS(5) &"&nbsp;cm</td></tr>"
Response.Write "<tr><td class=""fed"">Højde:</td><td class=""tekst"">"& RS(4) &"&nbsp;cm</td></tr>"
Response.Write "<tr><td class=""fed"">Pris:</td><td class=""tekst"">"& RS(3) &"</td></tr>"
Response.write "</table></div></table>"

%>
Avatar billede roenving Novice
24. april 2005 - 21:00 #15
Prøv at se hvordan koden ser ud ved at kigge på Vis kilde i browseren !-)
Avatar billede peterkopi Nybegynder
24. april 2005 - 21:06 #16
Jeg har lige udkommenteret skygge-scriptet, og onClick fungerer fint uden det. Men hvorfor kan 1 javascript ikke fungere inde i et andet?
Avatar billede peterkopi Nybegynder
24. april 2005 - 21:09 #17
Desuden er det ny tydeligt for mig, at skygge-scriptet ENTEN gør selve billedet transparent eller lægger skyggen oven over selve billedet... Lige nu fatter jeg minus!
Avatar billede peterkopi Nybegynder
24. april 2005 - 21:25 #18
roenving: Hvad skulle jeg kunne se ved at kigge på Vis kilde?
Avatar billede roenving Novice
24. april 2005 - 21:30 #19
Hvordan koden ser ud, når den skal eksekveres !-)

-- iøvrigt virker det ganske udmærket hos mig ...
Avatar billede peterkopi Nybegynder
24. april 2005 - 21:37 #20
Har kigget. Hvad så du - og hvad virker ganske udmærket hos dig?
Avatar billede roenving Novice
24. april 2005 - 21:41 #21
Den lukker vinduet her !-)
Avatar billede peterkopi Nybegynder
24. april 2005 - 21:56 #22
Det gør den også her EFTER udkommenteringen af skygge-scriptet. Men ikke før!
Avatar billede peterkopi Nybegynder
24. april 2005 - 21:58 #23
Hvad siger du til kommentaren 21:09:55? Hvad ligger mon øverst - billedet eller skyggen?
Avatar billede roenving Novice
24. april 2005 - 22:01 #24
Arh, det er måske z-index-værdien, som driller ...

Sæt den sådan i stylesheetet, at du er sikker på, at de andre billeder ikke kommer foran, f.eks.

.shadeTBL {
    position: relative;
    left: 0px;
    top: 0px;
    z-index: 50;
    background-color: #fff;
}
Avatar billede peterkopi Nybegynder
24. april 2005 - 22:09 #25
Det var jo lige det, der skulle til, roenving. Sikken dejlig søndag aften det pludselig endte med at blive *S* onClick eventen virker også!


Lægger du et svar?
Avatar billede roenving Novice
24. april 2005 - 22:14 #26
Velbekomme '-)
Avatar billede roenving Novice
24. april 2005 - 22:24 #27
Tak for point ;~}
Avatar billede olebole Juniormester
24. april 2005 - 22:50 #28
Undskyld ... jeg har ikke fået nogen mails i denne tråd  :o|

Så vidt, jeg husker (det er længe siden, jeg skrev det script), så bør z-index'et på 'shadeTBL' sættes én højere end antallet af steps i:
  var steps = (d.all && !window.createPopup)? 1 : 4; // Antal skygge-steps

- naturligvis justeret efter, om man i forvejen har lagt andet på siden i z-index  :)
Avatar billede roenving Novice
24. april 2005 - 22:52 #29
-- det husker du korrekt, ole, for der var også et tilknyttet spørgsmål, hvor præcis den detalje blev berørt !-)
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