Avatar billede mik789 Nybegynder
23. april 2002 - 18:10 Der er 19 kommentarer og
1 løsning

NS6.2: forsinket rollover

Jeg har en tabel med en serie gif'er i 1. kolonne og en serie links i den 2. kolonne. Når musen er over et link (i 2. kolonne) skifter gif'en i 1. kolonne i den pågældende række. Så mouseover- og mouseout-effekten virker i en anden celle end i den hvori begivenheden (mouseopver og -out) forekommer.

Det er ikke noget problem i IE hvor gif'erne skifter ubesværet og hurtigt (alle er loadet i forvejen vha scriptet), men i NS (v.6.2.1) hænger skiftet bagefter. Hvis man kører musen hurtigt ned over link'ene så hænger mouseover effekten flere rækker bagefter.

Her er koden:

I head:

<script language="JavaScript" type="text/javascript">

Graa01 = new Image(); Graa01.src='images/graa01.gif';
Graa02 = new Image(); Graa02.src='images/graa02.gif';
Graa03 = new Image(); Graa03.src='images/graa03.gif';

[osv. tilsvarende gif'er, 13 i alt]

Koks = new Image(); Koks.src='images/koks.gif';

function rollOver(original,replacement) {
  document[original].src=eval(replacement+".src")
}

</script>

I body:

    <tr>
      <td width="20" height="18" bgcolor="#e4e5e6"><img src="images/graa01.gif" name="onover01" width="20" height="18"></td>
      <td width="430" height="18" valign="middle" bgcolor="#e4e5e6" class="tekst"><a href="specialister.html" target="_top" onMouseOver="rollOver('onover01','Koks')" onMouseOut="rollOver('onover01','Graa01')" style="text-decoration: none; ">DAHR's specialister vedr&oslash;rende religioner og religi&oslash;se bev&aelig;gelser</a></td>
    </tr>

[og tilsvarende for de næste 12 rækker]

Man kan tjekke på www.dahr.dk

Hvad kan man gøre for at få NS til at reagere hurtigere på denne rollover?
Avatar billede mik789 Nybegynder
23. april 2002 - 18:13 #1
Sammenlign evt. med rollover effekten i topframen på www.mlo.nu (muslimsk organisation i Danmark), hvor skiftet foregår fuldstændig ubesværet OGSÅ i NS 6.2
Avatar billede -mundi- Nybegynder
23. april 2002 - 18:17 #2
Det er fordi netscape downloader billedet hver gang istedet for at hente der fra cachen, på www.mlo.nu henter de billederne ind i javascript og brugerdem derfra istedet for at loade dem hver gang
Avatar billede -mundi- Nybegynder
23. april 2002 - 18:19 #3
var måske lige lidt hurtig der sorry
Avatar billede jakoba Nybegynder
23. april 2002 - 18:23 #4
endelig :-))
det omvendte af hvad jag er dødtræt af at sige:
    der skal ikke ' (anførselstegn) omkring anden parameter til din funktion rollOver. det er jo variabelen med det navn du mener ikke?

og så bliver funktionen til:

function rollOver(original,replacement) {
  document.images[original].src= replacement.src;
}

mvh JakobA
Avatar billede jakoba Nybegynder
23. april 2002 - 18:27 #5
Det at tilføje .images  efter document skulle hjælpe gevaldigt på NS hastigheden.
Avatar billede mik789 Nybegynder
23. april 2002 - 19:18 #6
mundi> jeg kan ikke se nogen forskel på den måde billederne hentes ind. Både på www.dahr.dk og på www.mlo.nu hentes de ind med javascriptet i head.
Avatar billede mik789 Nybegynder
23. april 2002 - 20:47 #7
jakoba> det gør desværre ingen som helst forskel at jeg tilføjer .images efter document. NS hænger lige så meget bagefter som før. Jeg forstår stadig ikke hvorfor billedskiftet foregår hurtigere på www.mlo.nu i NS end i www.dahr.dk. Den eneste forskel kunne være at på www.dahr.dk er billedet der skal skifte, placeret i en anden celle end linket.
Avatar billede jakoba Nybegynder
23. april 2002 - 21:33 #8
Kan det passe at billedet 'images/graa01.gif' er præcis det samme som images/graa02.gif' der igen er præcis det samme som images/graa03.gif', osv for alle 12 linier?

hvorfor så ikke nøjes med eet gråt billede? når det blot er preloadet een gang kan det bruges alle de steder du vil (ligesom billedet'images/koks.gif')

<script language="JavaScript" type="text/javascript">

Graa01 = new Image(); Graa01.src='images/graa01.gif';
// [kun een graa gif. mere behøves ikke]

Koks = new Image(); Koks.src='images/koks.gif';

function rollOver( imgid, filnavn ) {
  document.images[imgid].src= "images/" +filnavn +".gif")
}

</script>

og din tabelrække bliver så:

    <tr>
      <td width="20" height="18" bgcolor="#e4e5e6"><img src="images/graa01.gif" name="onover01" width="20" height="18"></td>
      <td width="430" height="18" valign="middle" bgcolor="#e4e5e6" class="tekst"><a href="specialister.html" target="_top" onMouseOver="rollOver('onover01','koks')" onMouseOut="rollOver('onover01','Graa01')" style="text-decoration: none; ">DAHR's specialister vedr&oslash;rende religioner og religi&oslash;se bev&aelig;gelser</a></td>
    </tr>

Dvs: Den eneste ændring i rækkerne er at 'koks' er med lille k og der skal nu stå 'graa01' i hver eneste række (samme billedfil)

mvh JakobA
Avatar billede mik789 Nybegynder
23. april 2002 - 22:29 #9
jakoba> du har ret i at det er den samme grå gif i alle rækkerne, men selv nu hvor jeg har forenklet det så der kun er én (som du angiver ovenfor) er resultatet præcis det samme: NS halter langt bagefter. Det er meget mystisk, fordi jeg har den samme tabel på undersidernes venstre ramme, og her er der ingen problemer. Det må være noget andet ved dokumentet i hovedrammen der forhindrer at giferne læses ind forud med scriptet.
Avatar billede jakoba Nybegynder
23. april 2002 - 22:45 #10
og du har også ændret funktionen?
og clearet cashe i din NS6?

PS: jeg ser ingen ændring på http://www.dahr.dk/

mvh JakobA
Avatar billede mik789 Nybegynder
23. april 2002 - 22:53 #11
nej du kan ikke se det, for jeg har ikke uploadet endnu, men kører det kun på min egen pc ind til det er i orden.

ja, jeg har ændret funktionen.
hvad betyder "clearet cashe i din NS6"?
Avatar billede mik789 Nybegynder
23. april 2002 - 23:01 #12
fandt ud af det med cashen. ja, jeg har clearet den. ingen forskel.

og det, at den samme tabel med præcis de samme rollover funktioner virker på den venstre ramme i undersiderne (www.dahr.dk/calendar) f.eks. tyder på at det er noget andet der er galt, noget med selve hovedsiden.
Avatar billede mik789 Nybegynder
23. april 2002 - 23:02 #13
ups! det skal være venstre ramme i:
www.dahr.dk/calendar.html
Avatar billede jakoba Nybegynder
23. april 2002 - 23:16 #14
er billedernes virkelige bredde/højde den samme som den bredde/højde du angiver i <img kommandoen?
Avatar billede jakoba Nybegynder
23. april 2002 - 23:24 #15
med min NS6.0 har jeg ingen problemer med hverken forsiden eller kalenderen, og det havde jeg heller ikke da vi dette spørgsmål startede.
Avatar billede mik789 Nybegynder
24. april 2002 - 06:11 #16
bredde*højde: ja, den er angivet korrekt.

vil det sige, at i din NS6 kører rollover effekten ganske almindeligt flydende, som den skal?

så er det jo noget andet, noget med den måde min NS6 er sat op. I får lige den reviderede kode, både til hovedsiden og til undersidernes venstre ramme. Jeg har stirret på den hele aftenen i går, og kan simpelthen ikke se at der skulle være noget galt. Men som sagt, jeg tror ikke længere det er scriptet den er gal med, men noget andet på siden.

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

_Hovedsiden_

<script language="JavaScript">

Graa = new Image(); Graa.src='images/graa.gif';
Koks = new Image(); Koks.src='images/koks.gif';

function rollOver(imgName,fileName) {
  document.images[imgName].src="images/" + fileName + ".gif";
}

// Placér nyt vindue
topPosition=0;
if (screen) {
  topPosition = screen.height-510;
}

// Åben nyt vindue
function instructionWindow(URL) {
  instruction = window.open(URL, "instruction", "width=650,height=450,left=158,top="+topPosition+",toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes");
  instruction.focus();
}

</script>

<tr>
      <td width="20" height="18" bgcolor="#e4e5e6"><img src="images/graa.gif" name="onover01" width="20" height="18"></td>
      <td width="430" height="18" valign="middle" bgcolor="#e4e5e6" class="tekst"><a href="specialister.html" target="_top" onMouseOver="rollOver('onover01','koks')" onMouseOut="rollOver('onover01','graa')" style="text-decoration: none; ">DAHR's specialister vedr&oslash;rende religioner og religi&oslash;se bev&aelig;gelser</a></td>
    </tr>
   
[osv. med de næste rækker]

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

_Undersidernes venstre ramme_

<script language="JavaScript">

Graa = new Image(); Graa.src='images/graa.gif';
Koks = new Image(); Koks.src='images/koks.gif';
Graa_rev = new Image(); Graa_rev.src='images/graa_rev.gif';
Koks_rev = new Image(); Koks_rev.src='images/koks_rev.gif';

function rollOver(imgName,fileName) {
  document.images[imgName].src="images/" + fileName + ".gif";
}

</script>

<tr>
          <td width="20" height="18" bgcolor="#303b40"><img src="images/graa_rev.gif" name="onover14" width="20" height="18"></td>
          <td width="128" height="18" valign="middle" bgcolor="#303b40" class="tekst"><a href="index.html" target="_top" onMouseOver="rollOver('onover14','koks_rev')" onMouseOut="rollOver('onover14','graa_rev')" style="text-decoration:none"><font color="#ffffff"><b>Forside</b></font></a></td>
        </tr>
        <tr>
          <td width="20" height="2" bgcolor="#cc0033"><img src="images/transparent.gif" width="20" height="2"></td>
          <td width="128" height="2" bgcolor="#cc0033"><img src="images/transparent.gif" width="128" height="2"></td>
        </tr>
        <tr>
          <td width="20" height="18" bgcolor="#e4e5e6"><img src="images/graa.gif" name="onover01" width="20" height="18"></td>
          <td width="128" height="18" valign="middle" bgcolor="#e4e5e6" class="tekst"><a href="specialister.html" target="DAHR_main" onMouseOver="rollOver('onover01','koks')" onMouseOut="rollOver('onover01','graa')" style="text-decoration: none; ">DAHR's specialister</a></td>
        </tr>
       
[osv.]
Avatar billede jakoba Nybegynder
24. april 2002 - 10:42 #17
Desværre. det er helt fint :(
Jeg kan ikke finde nogen fejl (olebole, kom og hjælp?)

og dog:

i hovedsiden har du <!doctype til HTML 4.01, så den bliver fortolket efter html 4.01 regler

i sub_leftframe.html har du ikke angivet nogen doctype, så den bliver fortolket i quirks-mode

Vi kan hurtigt teste om det er det der gør forskellen.
cut&paste <!doctype linien (den allerforreste) over i filen sub_leftframe.html og se om den også bliver sløv af det.

Den væsentligste forskel fra 'quirks' til HTML4.01 er CSS, mange ting der før blev gjort med html-kommandoer eller attributter, bør der gøres med med CSS.
    <font kommandoen er fx aldeles overflødig i HTML4.01

så hvis din hovedside kan klare sig uden den <!doctype linie kunne det være det er en god nok fix.

Jeg tør ikke kalde det en løsning for så får jeg tæv af puristerne, som jeg forresten også er ret enig med. Vi BØR prøve at lave standard HTML-sider.

mvh JakobA
Avatar billede mik789 Nybegynder
24. april 2002 - 11:27 #18
jakoba> >Vi BØR prøve at lave standard HTML-sider.

du mener, vi bør gøre os klart hvilken standard vi bruger og bruge doctype i overensstemmelse her med, ik'?

jeg selv er på vej over i xmhtml, som ser ud til at være det mest konsekvente.

og så tak for hjælpen endnu engang. om ikke andet fik jeg forenklet mit script
Avatar billede mik789 Nybegynder
24. april 2002 - 11:28 #19
xhtml. se'føli'
Avatar billede mik789 Nybegynder
24. april 2002 - 22:14 #20
<!doctype>, nej, det er heller ikke det, der spøger. jeg prøvede at fjerne den, men det hjalp ikke.

kigger lidt nærmere på mine NS6 settings
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