Avatar billede zarthax Nybegynder
21. december 2005 - 14:18 Der er 16 kommentarer og
1 løsning

mouseover på <td>#1 giver andet billede i andet <td>#2

Vi starter med min kode:

<style type="text/css">
td{    width: 50px; height: 70px; border: 1px ridge blue;}
.content{width: 250px;}
.spacer{ width: 60px; border: none;}

.mt0000{background:no-repeat;background-image:url(art/mal/thumb/m_t_0000.jpg);}
.mt0001{background:no-repeat;background-image:url(art/mal/thumb/m_t_0001.jpg);}
.mt0002{background:no-repeat;background-image:url(art/mal/thumb/m_t_0002.jpg);}
.mt0003{background:no-repeat;background-image:url(art/mal/thumb/m_t_0003.jpg);}

.mt1000{background-position:center; background:no-repeat; background-image:url(art/mal/thumb/m_t_1000.jpg);}
.mt1001{background:no-repeat;background-image:url(art/mal/thumb/m_t_1001.jpg);}
.mt1002{background:no-repeat;background-image:url(art/mal/thumb/m_t_1002.jpg);}
.mt2000{background:no-repeat;background-image:url(art/mal/thumb/m_t_2000.jpg);}

.specbluea{background:no-repeat;background-image:url(art/mal/thumb/specblue_a.jpg);}
.specblueb{background:no-repeat;background-image:url(art/mal/thumb/specblue_b.jpg);}
.specbluec{background:no-repeat;background-image:url(art/mal/thumb/specblue_c.jpg);}
.specblued{background:no-repeat;background-image:url(art/mal/thumb/specblue_d.jpg);}

.specreda{background:no-repeat;background-image:url(art/mal/thumb/specred_a.jpg);}
.specredb{background:no-repeat;background-image:url(art/mal/thumb/specred_b.jpg);}
.specredc{background:no-repeat;background-image:url(art/mal/thumb/specred_c.jpg);}
.specredd{background:no-repeat;background-image:url(art/mal/thumb/specred_d.jpg);}
</style>

</head>
<body>

<table border="0" align="center">
    <tr>
        <td class="mt0000">&nbsp;</td>
        <td class="mt0001">&nbsp;</td>
        <td class="mt0002">&nbsp;</td>
        <td class="mt0003">&nbsp;</td>
    <td class="spacer" rowspan="4">&nbsp;</td>
    <td class="content" rowspan="4">Content</td>
    </tr>
    <tr>
        <td class="mt1000">&nbsp;</td>
        <td class="mt1001">&nbsp;</td>
        <td class="mt1002">&nbsp;</td>
        <td class="mt2000">&nbsp;</td>
    </tr>
    <tr>
        <td class="specbluea">&nbsp;</td>
        <td class="specblueb">&nbsp;</td>
        <td class="specbluec">&nbsp;</td>
        <td class="specblued">&nbsp;</td>
    </tr>
    <tr>
        <td class="specreda">&nbsp;</td>
        <td class="specredb">&nbsp;</td>
        <td class="specredc">&nbsp;</td>
        <td class="specredd">&nbsp;</td>
    </tr>




Spørgsmålet er følgende:
Når musen holdes over de forskellige celler, vises det tilsvarende billede i den celle der har class="content". Det billede der vises, er naturligvis en hel del større end dem der er i cellerne.
Jeg har allerede lavet et gennemsigtigt billede på 25X25 px til formålet.
Hvordan gøres dette ??

Billederne skal hentes fra CSS fordi det skal være rimeligt overskueligt at ændre sidens indhold. Den der i fremtiden skal gøre dette, kender ikke til HTML.

Løsning #2:
Som det ses, hentes billederne igennem CSS.
Findes der en metode hvor billederne skrives ind i et .txt dokument, (incl. sti til billedet), hvor en funktion i cellerne kalder billederne, og som stadig har mouseover funktionen som beskrevet herover ??
Avatar billede roenving Novice
21. december 2005 - 14:25 #1
Du kan ikke aflæse nogen properties i et stylesheet via elementet, så det kan ikke gøres på den måde ...

-- du kan glimrende have alle links i en anden fil (en .js-fil er langt det nemmeste, men en text-fil kan loades i en iframe og derefter aflæses !-)
Avatar billede zarthax Nybegynder
21. december 2005 - 14:34 #2
hmmm.... men hvad er så løsningen? :(
Husk nu, grundlæggende HTML er mit område.... kommer det til JS er jeg da HELT stået af *GG*
Avatar billede roenving Novice
21. december 2005 - 14:50 #3
F.eks. en js-fil:

<script type="text/javascript" src="billeder.js"></script>

-- og billeder.js kunne så være sådan:

//------------------ start på billeder.js
window.onload = function(){
  for(pic in billeder){
    document.getElementById(pic).style.backgroundImage = "url(" + billeder[pic] + ")";
  }
}

var billeder = {
'mt0000':'art/mal/thumb/m_t_0000.jpg',
'mt0001':'art/mal/thumb/m_t_0001.jpg',
'mt0002':'art/mal/thumb/m_t_0002.jpg',
'mt0003':'art/mal/thumb/m_t_0003.jpg',

'mt1000':'art/mal/thumb/m_t_1000.jpg',

//og de resterende

}

function mOver(elm){
  document.getElementById("content").style.backgroundImage = "url(" + billeder[elm.id] + ")";
}

//------------------ slut på billeder.js

-- så skal du selvfølgelig sætte id og ikke class på dine elementer (du kan dog med fordel beholde den samme klasse på alle elementer, da du så kan sætte grundegenskaber via den !-)

<td class="thumbnail" id="mt0000" onmouseover="mOver(this);">&nbsp;</td>

-- absolut utestet !o]
Avatar billede roenving Novice
21. december 2005 - 14:52 #4
-- og hvis du f.eks. har dine store billeder i en anden mappe (her 'pics' !-), men ellers samme filnavn:

function mOver(elm){
  document.getElementById("content").style.backgroundImage = "url(" + billeder[elm.id].replace(/thumb/,"pics") + ")";
}
Avatar billede zarthax Nybegynder
21. december 2005 - 14:56 #5
hmm.... jeg prøver den lige....
men først:
Jeg laver CSS om til id´s istedet for Class.
ændrer <TD> tilsvarende...

Men det jeg ikke kan se, er dér hvor celle #2 viser det store billede ??

Jeg uploader lige.... så kan i også følge med ;)
Avatar billede zarthax Nybegynder
21. december 2005 - 15:00 #6
hov, så ikke din sidste besked før jeg postede, sorry :(

Nu er der uploadet, men -js er ikke lagt ind endnu.. bliver det om et blik-øje
www.camedli.dk/gm
Avatar billede zarthax Nybegynder
21. december 2005 - 15:12 #7
Debugger brokker sig ved kørsel i stons webwriter.
Den peger på, at klassen "Thumbnail" ikke eksisterer.

Nu da jS er inde i billedet, hvordan skal denne så se ud ?? (klassen "thumbnail")
(Har nu uploadet MED js)
Avatar billede zarthax Nybegynder
21. december 2005 - 15:18 #8
små billeder ligger på denne sti:
art->mal->thumbs og hedder m_t_0001 - m_t_0002 osv.

Store billeder ligger på denne sti:
art -> mal -> full og heddet m_f_0001 - m_f_0002 osv.

starten af filnavnet fortæller hvor billedet hører til:
m_t_0001 = mal_thumb_0001
m_f_0001 = mal_full_0001
Avatar billede roenving Novice
21. december 2005 - 15:21 #9
F.eks.

.thumbnail{width: 50px; height: 70px; border: 1px ridge blue;background-repeat:no-repeat;}

-- og så skal der laves to erstatninger:

function mOver(elm){
  document.getElementById("content").style.backgroundImage = "url(" + billeder[elm.id].replace(/thumb/,"full").replace(/_t_/,"_f_") + ")";
}
Avatar billede zarthax Nybegynder
21. december 2005 - 15:27 #10
rettet og uploadet, men stadig fejl... :(
Mand det er u-overskueligt det her *GG*
Avatar billede roenving Novice
21. december 2005 - 15:39 #11
Hvor er tabellen og boksene henne ?-)
Avatar billede zarthax Nybegynder
21. december 2005 - 15:43 #12
De ligger i index filen.
Alt indhold hentes fra en iframe...

Mappestruktur:

-root
    - Master_images
    - art
        - mal
            - full
            - thumb
        - teg
            - full
            - thumb
        - por
            - full
            - thumb
-index
Avatar billede zarthax Nybegynder
21. december 2005 - 15:44 #13
hov... mangler det sidste:

Filstruktur:

-index
    -mal
    -teg
    -por
Avatar billede zarthax Nybegynder
21. december 2005 - 15:45 #14
men, bliver nød til at rende nu. Kommer igen senere i aften :(
Avatar billede zarthax Nybegynder
21. december 2005 - 21:26 #15
ingen clues ??
Avatar billede zarthax Nybegynder
20. januar 2006 - 12:52 #16
hm.mm... ??
Avatar billede zarthax Nybegynder
25. januar 2006 - 13:01 #17
nå, det er ikke så godt :S
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