Avatar billede overgreat Forsker
27. juli 2004 - 22:35 Der er 8 kommentarer og
1 løsning

Hvorfor virker mouseovereffekt ikke ordentligt i innerhtml-tekst

ER der nogen der kan forklare og måske også komme med løsninger til hvorfor denne mouseovereffekt ikke virker ordentligt. Den kan ses:

www.gdo.dk/henrikprojekt/argument.php

To ting virker ikke ordentligt:
1. (ved det danske flag) når musen føres over virker det umiddelbart ok, men føres den op omkring Danish design teksten hopper den op til forgrundsbilledet?!
2. Når jeg i teksten vil indsætte <p></p> går den helt bananas og virker slet ikke...

På forhånd tak!

-----------------------------



div id="minDiv1" style="height:153px;width:380px;background-image:url(design.jpg);" onmouseover="this.style.backgroundImage='url(design1.jpg)';this.innerHTML='<?
if (!$navn1) {
echo "<b>DANSK DESIGN</b> er velkendt overalt i verden.<br>Ved siden af vores egne designere, samarbejder vi med andre danske designere som Sven Heskier og Jean Grandt<br>Dette er for at sikre, at vi hele innoverer og imødekommer vores kunders ønsker.";}
if($navn1==eng){
echo "<b>DANISH DESIGN</b> is wellknown throughout the world.<br>Besides our own designs, we work together with danish designers such as Sven Heskier and Jean Grandt.<br>This is to ensure, that we are constantly seeking innovation and meeting our customers demands.";}
if($navn1==lit){
echo "????";}
if($navn1==tys){
echo "Tysk Tekst om dansk design";}
if($navn1==dk){
echo "<b>DANSK DESIGN</b> er velkendt overalt i verden.<br>Ved siden af vores egne designere, samarbejder vi med andre danske designere som Sven Heskier og Jean Grandt<br>Dette er for at sikre, at vi hele innoverer og imødekommer vores kunders ønsker.";}
?>'" onmouseout="this.style.backgroundImage='url(design.jpg)';this.innerHTML=''"> </div
Avatar billede mik789 Nybegynder
28. juli 2004 - 07:51 #1
det sker vel fordi browseren opfatter <b> tag'et som noget andet end "this" (= <div id="minDiv1").
Sker det samme hvis du i stedet bruger document.getElementById('minDiv1').style.backgroundImage='url(design1.jpg)';document.getElementById('minDiv1').innerHTML=

??
Avatar billede overgreat Forsker
28. juli 2004 - 22:28 #2
Hej Mik.....

Jeg er ikke helt med, hvordan koden skal se ud... kan du være lidt mere specifik.

Så kan jeg lige afprøve din ide!
Avatar billede mik789 Nybegynder
28. juli 2004 - 22:47 #3
jamen jeg er ikke sikker på at det er det, der er i vejen. Jeg har selv haft lignende problemer - altid med onmouseover, som åbenbart er ret sart. Og det sker der hvor andre tags går ind og forstyrrer det element som mouseover-eventen gælder for, i dit tilfælde er det <b></b> der skaber problemer. Derfor foreslog jeg bare at du overalt hvor "this" refererer til minDiv1 erstatter "this" i din kode med:

document.getElementById('minDiv1')

egentlig burde det ikke gøre nogen forskel, men man bliver ind imellem overrasket.
Hvis ikke det virker, kan jeg ikke se anden mulighed end (den klodsede) at du gentager hele smøren også i <b> tag'et, altså <b onmouseover="document.getElementById('minDiv1').innerHTML=<? [osv.]

Har vi roenving på banen for et bedre forslag???
Avatar billede roenving Novice
29. juli 2004 - 05:09 #4
Jeg ville lave det sådan:

<script type="text/javascript">
var ie = (document.all)?true:false;
  function showText(elm,show){
    i = elm.getElementsByTagName('IMG')[0];
    d = elm.getElementsByTagName('DIV')[0].style;
    if(!ie)i.style.MozOpacity = (show)?0.25:1;
    if(ie)i.filters.alpha.opacity = (show)?25:100;
    d.display = (show)?'block':'none';
  }
</script>
<table>
  <tr>
    <td style="position:relative;width:200px;height:150px;" onmouseover="showText(this,true)"; onmouseout="showText(this,false);">
      <img src="../billede.jpg" style="position:relative;width:200px;height:150px;filter:alpha(opacity=100);-moz-opacity:1;">
      <div style="position:absolute;top:0;left:0;display:none;color:white;text-align:center;z-index:100;">Denne tekst er der kun mouseover</div>
    </td>
  </tr>
</table>
Avatar billede mik789 Nybegynder
29. juli 2004 - 07:21 #5
overgreat> prøv roenvings løsning, men prøv samtidig at bevare dit <b> tag, altså:

<div style="position:absolute;top:0;left:0;display:none;color:white;text-align:center;z-index:100;"><b>Denne</b> tekst er der kun mouseover</div>

og så lad os se om <b> tag'et stadig ødelægger mouseover-effekten.
Avatar billede roenving Novice
29. juli 2004 - 08:47 #6
b-tagget eller for den sags skyld strong-tagget virker uden problemer i dennne løsning ...
Avatar billede overgreat Forsker
29. juli 2004 - 14:03 #7
Hej roenvig

Tusind tak for hjælpen. Det virker 110 %. Super løsning. Sender du et svar?
Avatar billede roenving Novice
29. juli 2004 - 23:51 #8
Velbekomme '-)
Avatar billede roenving Novice
28. august 2004 - 11:57 #9
-- og tak for point ;~}
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