AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein PHP/javascript-Code Problem bei anzeige versch. Image's
Thema durchsuchen
Ansicht
Themen-Optionen

PHP/javascript-Code Problem bei anzeige versch. Image's

Ein Thema von Mikescher · begonnen am 29. Okt 2008 · letzter Beitrag vom 29. Okt 2008
Antwort Antwort
Benutzerbild von Mikescher
Mikescher

Registriert seit: 3. Jun 2008
Ort: Offenburg
265 Beiträge
 
Delphi 2009 Professional
 
#1

PHP/javascript-Code Problem bei anzeige versch. Image's

  Alt 29. Okt 2008, 18:18
Hallo,

Ich melde mich hier mal wieder mit einem Problem...

Der folgende Code soll eigentlich ein Bild und zwei Pfeile (vor & zurück ) anzeigen auf vor kommt das nächste Bild auf zurück das letzte...

Aber irgendwie funktioniert das alles nicht so wie es soll manchmal zeigt's die Bilder an... manchmal nicht beim ersten Durchlauf mit vor wird z.B. ein Bild nicht angezeigt dann geh ich zurück es wird immer noch nicht angezeigt geh ich dann aber wieder vor zeigt es das Bild dann doch an.

Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
    <title>Merlin Quacks-Evita Schwörer</title>
<?

  $Max=93; # Anzahl verwendeter Bilder !!! umbedingt bei Änderungen ändern !!!

  print("<script language=\"JavaScript\">
  <!--
    function OnLoad_Func()
      {
        ImagePreload();
        img_resize();
      }

    function ImagePreload()
      {
        document.Vorladen = new array()

        for(var i = 1; i < 10; i++)
          {
            document.Vorladen[i] = new Image();
            document.Vorladen[i].src = \"0\" + String(i) + \"_M.jpg\";
          }

        for(var i = 10; i < $Max + 1; i++)
          {
            document.Vorladen[i] = new Image();
            document.Vorladen[i].src = String(i) + \"_M.jpg\";
          }

      }

    function img_forward()
      {
        var name = '_M';
        var ActualImage = document.images[\"image\"].src;
        var lastSlash = ActualImage.lastIndexOf('/');
        var Count_String = ActualImage[lastSlash+1]+ActualImage[lastSlash+2];
        var Count = parseInt(Count_String, 10);
        Count = Count + 1;
        if (Count == $Max+1)
          { Count = 1; }
        var NewCount = String(Count)
        while (NewCount.length < String(".$Max.").length )
        {
        NewCount= \"0\"+NewCount;
        }
        var NewImage = NewCount + name + '.jpg';
        document.images[\"image\"].src = NewImage;
        img_resize();
         document.title =String(Count)+\" - \"+NewImage;;
      }

    function img_back()
      {
        var name = '_M';
        var ActualImage = document.images[\"image\"].src;
        var lastSlash = ActualImage.lastIndexOf('/');
        var Count_String = ActualImage[lastSlash+1]+ActualImage[lastSlash+2];
        var Count = parseInt(Count_String, 10);
        Count = Count - 1;
        if (Count == 0)
          { Count = $Max; }


        var NewCount = String(Count)
        while (NewCount.length < String(".$Max.").length )
        {
        NewCount= \"0\"+NewCount;
        }
        var NewImage = String(Count) + name +  '.jpg';
        document.images[\"image\"].src = NewImage;
        img_resize();
         document.title =String(Count)+\" - \"+NewImage;;
      }

    function img_resize()
      {
        var img_img = new Image();
        img_img.src = document.images[\"image\"].src;
        var img_width = img_img.width;
        var img_height = img_img.height;
        var img_width_new = 600;
        var img_height_new = 450;
        if (img_width >= img_height)
          {
            img_height_new = img_height * (600 / img_width);
          }
        else if (img_height > img_width)
          {
            img_width_new = img_width * (480 / img_height);
          }
        document.images[\"image\"].width = img_width_new;
        document.images[\"image\"].height = img_height_new;
      }

    function ImageOver(imagename)
      {
        if (imagename == \"back\")
          {
            document.images[\"back\"].src = \"zuruckover.jpg\";
          }
        else if (imagename == \"forward\")
          {
            document.images[\"forward\"].src = \"vorover.jpg\";
          }
      }

    function ImageOut(imagename)
      {
        if (imagename == \"back\")
          {
            document.images[\"back\"].src = \"zuruck.jpg\";
          }
        else if (imagename == \"forward\")
          {
            document.images[\"forward\"].src = \"vor.jpg\";
          }
      }
    -->
</script>\n");
?>
</head>
<body onLoad="OnLoad_Func()" bgcolor="white" link="white">
 <center>

  <table border="0" width="906">
    <tr>
      <td valign="middle" width="150" height="480"> <a href="javascript:img_back();">
        [img]zuruck.jpg[/img]
        </a> </td>
      <td align="center" valign="middle" width="596">
        <? print("<img src=\"01_"."M".".jpg\" id=\"image\" name=\"image\" alt=\"image\" onClick=\"img_forward();\" />"); ?>
      </td>
      <td valign="middle" width="150"> <a href="javascript:img_forward();"> [img]vor.jpg[/img]
        </a> </td>
    </tr>
    <tr>
      <td colspan="2" height="40" valign="top" align="left"> Bild 001 </td>
      <td valign="top" align="right"> <font>&copy; by Mikescher.de</font> </td>
    </tr>
  </table>
    </center>
</body>
</html>

Erklärungen zum Code:

-> In dem Ordner sind 93 Bilder die so angeordnet sind : siehe hier

-> Den Code wollte ich eigentlich dynamisch gestalten so dass ich beliebig viele Bilder hinzufügen kann und nur $Max ändern muss

-> Wer sich das Ergebniss und die Fehler ansehen möchte (vermutlich weil wohl keiner meine Beschreibung des Fehlers verstanden hat ) muss nur hier klicken

MfG Mikescher
Mike
Operation gelungen, Patient tot.

http://www.mikescher.com
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#2

Re: PHP/javascript-Code Problem bei anzeige versch. Image's

  Alt 29. Okt 2008, 18:26
Folgendes: Wenn ich den Aufruf zu Img_resize rausnehme (ja, das geht mit Opera im Cache ^^) dann geht es.

Evtl. passiert es, dass du das neue Bild zuweist, er lädt (langsam) du resizest es (er weis noch nicht wie groß es ist und sagt dir "momentan null") auf eine Höhe von null/ einem Pixel.
Wen dus neu lädst, hat er das Bild sofort parat und es funktioniert

Lösung: Erst nach einem Timeout das Bild resizen (wenn überhaupt) z.B. 100 ms
  Mit Zitat antworten Zitat
Benutzerbild von Mikescher
Mikescher

Registriert seit: 3. Jun 2008
Ort: Offenburg
265 Beiträge
 
Delphi 2009 Professional
 
#3

Re: PHP/javascript-Code Problem bei anzeige versch. Image's

  Alt 29. Okt 2008, 19:00
Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
    <title>Merlin Quacks-Evita Schwörer</title>
<?

  $Max=93; # Anzahl verwendeter Bilder !!! umbedingt bei Änderungen ändern !!!

  print("<script language=\"JavaScript\">
  <!--
    function OnLoad_Func()
      {
        ImagePreload();
      }

    function ImagePreload()
      {
        document.Vorladen = new array()

        for(var i = 1; i < 10; i++)
          {
            document.Vorladen[i] = new Image();
            document.Vorladen[i].src = \"0\" + String(i) + \"_M.jpg\";
          }

        for(var i = 10; i < $Max + 1; i++)
          {
            document.Vorladen[i] = new Image();
            document.Vorladen[i].src = String(i) + \"_M.jpg\";
          }

      }

    function img_forward()
      {
        var name = '_M';
        var ActualImage = document.images[\"image\"].src;
        var lastSlash = ActualImage.lastIndexOf('/');
        var Count_String = ActualImage[lastSlash+1]+ActualImage[lastSlash+2];
        var Count = parseInt(Count_String, 10);
        Count = Count + 1;
        if (Count == $Max+1)
          { Count = 1; }
        var NewCount = String(Count)
        while (NewCount.length < String(".$Max.").length )
        {
        NewCount= \"0\"+NewCount;
        }
        var NewImage = NewCount + name + '.jpg';
        document.images[\"image\"].src = NewImage;
         document.title =String(Count)+\" - \"+NewImage;;
      }

    function img_back()
      {
        var name = '_M';
        var ActualImage = document.images[\"image\"].src;
        var lastSlash = ActualImage.lastIndexOf('/');
        var Count_String = ActualImage[lastSlash+1]+ActualImage[lastSlash+2];
        var Count = parseInt(Count_String, 10);
        Count = Count - 1;
        if (Count == 0)
          { Count = $Max; }


        var NewCount = String(Count)
        while (NewCount.length < String(".$Max.").length )
        {
        NewCount= \"0\"+NewCount;
        }
        var NewImage = NewCount + name +  '.jpg';
        document.images[\"image\"].src = NewImage;
         document.title =String(Count)+\" - \"+NewImage;;
      }



    function ImageOver(imagename)
      {
        if (imagename == \"back\")
          {
            document.images[\"back\"].src = \"zuruckover.jpg\";
          }
        else if (imagename == \"forward\")
          {
            document.images[\"forward\"].src = \"vorover.jpg\";
          }
      }

    function ImageOut(imagename)
      {
        if (imagename == \"back\")
          {
            document.images[\"back\"].src = \"zuruck.jpg\";
          }
        else if (imagename == \"forward\")
          {
            document.images[\"forward\"].src = \"vor.jpg\";
          }
      }
    -->
</script>\n");
?>
</head>
<body onLoad="OnLoad_Func()" bgcolor="white" link="white">
 <center>

  <table border="0" width="906">
    <tr>
      <td valign="middle" width="150" height="480"> <a href="javascript:img_back();">
        [img]zuruck.jpg[/img]
        </a> </td>
      <td align="center" valign="middle" width="596">
        <? print("<img src=\"01_"."M".".jpg\" id=\"image\" name=\"image\" alt=\"image\" onClick=\"img_forward();\" />"); ?>
      </td>
      <td valign="middle" width="150"> <a href="javascript:img_forward();"> [img]vor.jpg[/img]
        </a> </td>
    </tr>
    <tr>
      <td colspan="2" height="40" valign="top" align="left"> Bild 001 </td>
      <td valign="top" align="right"> <font>&copy; by Mikescher.de</font> </td>
    </tr>
  </table>
    </center>
</body>
</html>
Ok Danke Heins es funktioniert(e) aber ich hab grad gemerkt das alle Bilder eh in den richtigen Größen vorhanden sind, also... raus mit der unnützen Funktion ..

Ist zwar der seltsame Effekt das es jetzt langsamer geht als vorher... aber damit kann ich leben

Also DANKE
Mike
Operation gelungen, Patient tot.

http://www.mikescher.com
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:13 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz