Avatar billede nemesis Nybegynder
24. april 2000 - 02:16 Der er 8 kommentarer og
1 løsning

skift af gfx i fht. brugers antal farver

Er der en som sidder inde med et fancy script, der på baggrund af brugerens antal farver loader et bestemt billede? Mit problem er at jeg vil lave en side med fancy gfx, men den skoder i lave antal farver. Kunne et script være en løsning?
Avatar billede jumper Nybegynder
24. april 2000 - 02:22 #1
screen.colorDepth

/Thor
Avatar billede erikjacobsen Ekspert
24. april 2000 - 02:29 #2
Det jumper mener - men ikke gider skrive (?? - hehe) - er følgende

<script language="JavaScript">
<!--
  if (screen.colorDepth<=8) {
    document.write("'<img src='color256.jpg'>");
  } else {
    document.write("<img src='color16m.jpg'>":
  }
//-->
</script>
Avatar billede erikjacobsen Ekspert
24. april 2000 - 02:31 #3
De stroffer, de stroffer...

  if (screen.colorDepth<=8) {
    document.write("<img src='color256.jpg'>");
  } else {
    document.write("<img src='color16m.jpg'>"):
  }
Avatar billede nemesis Nybegynder
24. april 2000 - 11:48 #4
men skal ovenstående ikke placeres i head? Hvad skal jeg så kalde, der hvor billedet skal være? Hvad nu hvis der er flere billeder på siden? (det er der:) Eller skal jeg istedet lave to versioner af hele siden?
Så må koden være en anden?
Avatar billede erikjacobsen Ekspert
24. april 2000 - 11:50 #5
Nej, nej, ikke i <head>, det skal anbringes der hvor dit billede skal være,
direkte i <body> !
Avatar billede nemesis Nybegynder
24. april 2000 - 11:52 #6
kanon! Tak for hjælpen! Lige en ting: Der sker altså ikke noget ved at bruge scriptet flere gange på samme side til forskellige billeder? (så kan jeg heller ikke finde på mere:)
Avatar billede erikjacobsen Ekspert
24. april 2000 - 11:58 #7
Du kan med sikkerhed bruge script-stumpen 257 gange på én side, med
forskellige (eller ens) billedenavne i. Nej, bare min spøg, du kan gøre det vilkårligt
mange gange.  Hov, det var synd for jumper... ;-|
Avatar billede jumper Nybegynder
24. april 2000 - 12:59 #8
erik, du har så evigt ret, jeg svarer alt for kort til tider ;)

Nemesis, hvis du vil spare noget udførselstid, lægger du en del af koden øverst op mellem <head> og </head>

<head>
<script language="Javascript">
<!--
farver = screen.colorDepth;
//-->
</script>
</head>

Når du så skal vise et billede enten i 256 eller 16m farver, skriver du blot

<script language="Javascript">
<!--
if (farver<=8) {
    document.write("<img src='color256.jpg'>");
    document.write("<img src='color256_igen.jpg'>");
  } else {
    document.write("<img src='color16m.jpg'>");
    document.write("<img src='color16m_igen.jpg'>");
  }
//-->
</script>

Så bliver der ikke spurgt efter den aktuelle opløsning hver gang der skal indsættes et billede, men kun én gang, hvor resultatet bliver gemt i en variabel. Det er altid hurtigere at sammenligne på variabler isteder for properties på browserobjekter.

erik, bedre? ;)

/Thor
Avatar billede erikjacobsen Ekspert
24. april 2000 - 14:24 #9
Eller man kunne definere en function - ikke for at spare tid, men måske
gøre det mere overskueligt:

<head>
  <script language="Javascript">
  <!--
      farver = screen.colorDepth;
      function whichone(b1,b2) {
        if (farver<=8) {
          document.write("<img src='"+b1+"'>");
      } else {
          document.write("<img src='"+b2+"'>");
      }
    }
  //-->
  </script>
</head>

og så nede i kroppen, hvor der skal sættes et billede ind:

    <script language="JavaScript">whichone('color256.jpg','color16m.jpg');</script>
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