Avatar billede fjeh Nybegynder
08. juli 2005 - 10:22 Der er 8 kommentarer og
1 løsning

Aflæs dimentioner på et billede

Jeg har en side som viser et stort billede øverst og nedenunder en masse små. Når man klikker på et lille billede skal dette vises som stort. Da ikke alle billeder har sammen højde og bredde vil jeg gerne have at billedets højde og bredde aflæses så det kan vises uden at blive strukket.

Jeg har indtil videre følgende kode:

<table>
  <tr>
    <td>
      <img width="800" height="600" id="stortbillede">
    </td>
  </tr>
</table>

Ovenstående tabel indeholder det store billede.

<table>
  <tr>
    <td>
      <div style="width:800px; height:127px; overflow:auto">
        <table>
          <tr>
            <?
            $dh = opendir($dir_name);
                   
            while(!(($file = readdir($dh)) === false)) {
              if(substr($file, 0, 1) == ".") {
                end;
              }
              else {
                $photo = $dir_name."/".$file;
                $arr = getimagesize("$photo");
                $width = $arr[0];
                $height = $arr[1];
              if($width == 800 AND $height == 600) {
                $width_img = "100";
                $height_img = "75";
              }
              if($width == 600 AND $height == 800) {
                $width_img = "75";
                $height_img = "100";
              }
              ?>
            <td>
              <img src="<? print $file; ?>" onclick="document.getElementById('stortbillede').src=this.src" width="<? print $width_img; ?>" height="<? print $height_img; ?>">

            </td>
            <?
          }
        }
        ?>
      </tr>
    </table>
    </div>
  </td>
</tr>
</table>

Ovenstående tabel indeholder de små billeder og der kan jeg godt aflæse deres højde og bredde. Problemet kommer når der klikkes på billedet og det vises som stort, så kan jeg ikke få defineret hvad dimentionerne skal være.

Ved godt er er noget PHP kode i mellem, selvom jeg har lagt spg. under JavaScript.
Avatar billede roenving Novice
08. juli 2005 - 10:28 #1
<table>
  <tr>
    <td width="800" height="600">
      <img width="800" height="600" id="stortbillede">
    </td>
  </tr>
</table>

              <img src="<? print $file; ?>" onclick="p=document.getElementById('stortbillede');p.src=this.src;p.style.width='<? print $width_img; ?>px';p.style.height='<? print $height_img; ?>px';" width="<? print $width_img; ?>" height="<? print $height_img; ?>">
Avatar billede barklund Nybegynder
08. juli 2005 - 10:28 #2
Det er jo et rent php-spørgsmål - dit script håndterer det lidt, bortset fra det i virkeligheden gør noget helt andet. Har du nogen anelse om, hvad dit php-script laver?
Avatar billede roenving Novice
08. juli 2005 - 10:30 #3
>>barklund

-- det er da netop et rent javascript-spørgsmål, for det handler om noget som skal ske i browseren som reaktion på en brugerhandling !-)
Avatar billede roenving Novice
08. juli 2005 - 10:33 #4
-- men man kunne godt få en mistanke om, at der skal laves lidt mere scripting, så billedet fylder så meget som muligt, og det kan både foregå server- og client-side ...

-- måske kunne det mest effektive være at lave den beregning, når billederne indsættes i databasen, men man kan også sagtens lade klientens rigelige ressourcer udføre stadset ...
Avatar billede roenving Novice
08. juli 2005 - 10:44 #5
Ganske utestet, men det kunne se således ud:

<script type="text/javascript">
function showAndResize(pic,w,h){
  var aspect = h/w, newW,newH;
  if(aspect >= 0.75){
    newH = 600;
    newW = Math.floor(600/aspect);
  }else{
    newW = 800;
    newH = Math.floor(800*aspect);
  }
  var p = document.getElementById('stortbillede');
  p.src = pic.src;
  p.style.width = newW + 'px';
  p.style.height = newH +'px';
}
</script>


<img src="<? print $file; ?>" onclick="showAndResize(this,<? print $width_img; ?>,<? print $height_img; ?>);" width="<? print $width_img; ?>" height="<? print $height_img; ?>">
Avatar billede barklund Nybegynder
08. juli 2005 - 10:44 #6
(/me tier stiller og læste tydeligvis forkert)
Avatar billede fjeh Nybegynder
08. juli 2005 - 11:06 #7
roenving: Tak for det super hurtige svar. Det virkede helt perfekt. Sender du lige et svar så du kan få dine velfortjente point?
Avatar billede roenving Novice
08. juli 2005 - 11:07 #8
Velbekomme '-)
Avatar billede roenving Novice
08. juli 2005 - 12:03 #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