Avatar billede overgreat Forsker
01. februar 2006 - 22:19 Der er 5 kommentarer og
1 løsning

menueffekt med ændringer ved mouseover

Hej

Jeg har fire knapper for oven samt et "fjernsyn" længere nede på siden.

Jeg ønsker at lære hvordan jeg laver følgende effekt.

Når musen kører over en af de fire knapper skal de tre andre skifte billede (knapperne består af 2 billeder), samtidigt skal der hentes noget tekst og et billede længere nede på siden.

Er der nogen der kan hjælpe mig med denne mouseover effekt.
Avatar billede overgreat Forsker
01. februar 2006 - 22:23 #1
her er selve layoutet.

De fire knapper er øverst. Ved mouseover skal slogan erstates af noget tekst og et billede. Er åben for ideer til løsning!

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>
    <title>www.molster.dk</title>
</head>

<body>

<center>
<table cellspacing="0" cellpadding="0" border="0" width="800" height="545">

<tr>
      <td height="42" width="800"><center><img src="forlag.gif" alt="forlaget mølster" border="0">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="salg.gif" alt="salgs- og motivationskurser" border="0">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="comp.gif" alt="comptersalg" border="0">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="tele.gif" alt="telemarketing" border="0"></center></td>
</tr>
<tr>
      <td background="stortm.gif" valign="middle" align="center" height="477" width="800"><img src="slogan.gif" alt="logo" border="0"></td>
</tr>
<tr>
      <td height="26" width="800"><img src="bunden.gif" alt="logo" border="0"></td>
</tr>
</table>

</center>

</body>
</html>
Avatar billede zappa Nybegynder
02. februar 2006 - 00:17 #2
Ikke den bedste løsning, men håber det hjælper.
----------

<script language="javascript">
<!-- hide script from old browsers

function over(imageid) {
if (imageid == 0) {
  document.images.slogan.src = "b1.jpg";
  document.f.s.value = "Test";
}
if (imageid == 1) {
  document.images.slogan.src = "b2.jpg";
}

osv.
}

function out() {
  document.images.slogan.src = "x.jpg";
  document.f.s.value = "";
}

-->
</script>

<form name="f">
<center>
<table cellspacing="0" cellpadding="0" border="0" width="800" height="545">
<tr>
  <td height="42" width="800">
  <center>
    <img onMouseOver="over(0)" onMouseOut="out()" src="a1.jpg" alt="forlaget mølster" border="0" />
     
    <img onMouseOver="over(1)" onMouseOut="out()" src="a2.jpg" alt="salgs- og motivationskurser" border="0"></center></td>
...
</tr>
<tr>
      <td background="stortm.gif" valign="middle" align="center" height="477" width="800"><img src="x.jpg" name="slogan" alt="logo" border="0"><textarea name="s" value="" style="overflow:hidden;"></textarea></td>
</tr>

</table>
</form>
Avatar billede zappa Nybegynder
02. februar 2006 - 00:20 #3
Glemte "border-color: #FFFFFF;" efter style="overflow:hidden;" dvs.
style="overflow:hidden;border-color:#FFFFFF;"
Avatar billede overgreat Forsker
02. februar 2006 - 08:39 #4
det virker udemærket. sender du et svar?
Avatar billede zappa Nybegynder
03. februar 2006 - 01:14 #5
Svar...
Avatar billede johan.o Nybegynder
03. februar 2006 - 11:22 #6
Jeg ved at du har fået et svar der virker. Jeg viser blot en anden måde :)

<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.0//EN' 'http://www.w3.org/TR/REC-html40/strict.dtd'>
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>
<title>www.molster.dk</title>

<style type="text/css">

td {
text-align: center; }

</style>

<script type="text/javascript">

function mOver(i,t) {
document.getElementById("iSlogan").src="s"+i.src.substr(i.src.lastIndexOf("/")+1);
document.getElementById("tSlogan").innerHTML=t; }

function mOut() {
document.getElementById("iSlogan").src="slogan.gif";
document.getElementById("tSlogan").innerHTML=""; }

</script>
</head>

<body>

<table cellspacing="0" cellpadding="0" style="width: 800px; height: 545px; margin: 0px auto;">
<tr>
  <td style="width: 25%; height: 42px;">
  <img src="forlag.gif" alt="forlaget mølster" onmouseover="mOver(this,'Text 1');" onmouseout="mOut();">
  </td><td style="width: 25%;">
  <img src="salg.gif" alt="salgs- og motivationskurser" onmouseover="mOver(this,'Text 2');" onmouseout="mOut();">
  </td><td style="width: 25%;">
  <img src="comp.gif" alt="comptersalg" onmouseover="mOver(this,'Text 3');" onmouseout="mOut();">
  </td><td style="width: 25%;">
  <img src="tele.gif" alt="telemarketing" onmouseover="mOver(this,'Text 4');" onmouseout="mOut();">
  </td>
</tr><tr>
  <td colspan="4" style="vertical-align: middle; height: 477px;">
  <img src="slogan.gif" id="iSlogan" alt="logo">
  </td>
</tr><tr>
  <td colspan="4" id="tSlogan" style="height: 26px;"></td>
</tr>
</table>

</body>
</html>

For det første er den DOCTYPE du bruger ikke helt i orden. Det er godt du bruger en men prøv at læse her :

http://msdn.microsoft.com/library/default.asp?url=/workshop/author/dhtml/reference/objects/doctype.asp

Der kan du læse at du bør have en DTD på din DOCTYPE når du bruger 'Transitional', så din DOCTYPE burde se således ud :

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">

Jeg bruger en 'Strict' DOCTYPE i mit eksempel, den er en lille smule mere restrektiv da den 'frasortere' ting som forventes at blive udfaset af CSS definitionerne, men i dette eksempel er det ligemeget hvilken du bruger.

Jeg har lavet lidt om på layoutet, det er blot et temperament spørgsmål :), men i javascript delen har jeg lavet funktionerne således at du kan tilføje lige så mange ekstra billeder i toppen du vil, du skal blot skrive en text i onmouseover handleren. Derudover kræver scriptet at der for hvert billede i toppen f.eks. forlag.gif, findes et billede med samme navn og et s foran, altså sforlag.gif.

Mvh. Johan
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