Anleitung | PopUps dynamisch anpassen und zentrieren (PHP / Javascript)

Dieses Thema im Forum "Flash and Actionscript" wurde erstellt von sevY, 16.07.2004.

  1. sevY

    sevY Thread Starter Gast

    Hi,

    ich hab mal etwas gebastelt, da man mich oft fragt wie das geht.

    Ihr habt ein Bild und möchtet, das man onClick ein PopUp bekommt, welches das Bild in größerer Darstellung enthält. Nur soll das PopUp sich der Bildgröße anpassen und außerdem auf dem Bildschirm zentrieren.

    So geht's:

    Zuerst das Javascript, das das PopUp öffnet, zentriert, sowie den Titel des Popups und den Pfad zu dem Bild als Funktionsparameter enthält und an die PHP Datei, welche das PopUp darstellen wird.

    PHP:
    //Javascript 1.0
    function popup(vars)
        {
        var 
    object="popup.php?"+vars;
        
    window.open(object,"PopUp","width=10,height=10,location=0,scrollbars=no,resizable=0,status=no");
        }
    Dann die PHP Datei, welche die Bildgröße ausliest und an ein Javascript weitergibt, um das PopUp zu zentrieren und anzupassen.

    PHP:
    <html>
    <head>
    <title><?php echo $_GET['title']; ?></title>
    <meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
    <meta http-equiv="expires" content="7">
    <link rel="stylesheet" type="text/css" href="default.css">
    </head>
    <?php
    $constraints
    =getimagesize($_GET['image']);
    $x=$constraints[0];
    $y=$constraints[1]+20;
    echo
    '
        <body onload="window.resizeTo('
    .$x.','.$y.');window.moveTo((screen.width-'.$x.')/2,(screen.height-'.$y.')/2);focus();" class="popup">
        <img src="'
    .$_GET['image'].'">
        '
    ;
    ?>
    </body>
    </html>
    Eingebunden in AS kann das dann so aussehen:


    PHP:

    //Actionscript 1.0

    image.onRelease=function()
        {
        
    getURL("javascript:popup('title=Resized&image=img/01stuhl.jpg');");
        }


    In der HTML, in der die SWF eingebettet ist, natürlich nicht vergessen, das Javascript zu includen ;)

    PHP:
    <html>
    <
    head>
    <
    script language="javascript" type="text/javascript" src="function.inc.js"></script>
    </head>
    <body>
    <table width="100%" height="100%">
        <tr>
            <td align="center" valign="middle">
                <table>
                    <tr>
                        <td>
                            <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs flash/swflash.cab#version=6,0,0,0" width="333" height="200">
                                <param name="movie" value="resize.swf">
                                <param name="quality" value="high">
                                <embed src="resize.swf" quality=high width="333" height="200" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer">
                                </embed>
                            </object>
                        </td>
                    </tr>
                </table>
            </td>
        </tr>
    </table>
    </body>
    </html>
    Viel Spaß damit,

    liebe Grüße

    Yves
     
    Zuletzt von einem Moderator bearbeitet: 02.10.2016
  2. Arclite

    Arclite MacUser Mitglied

    Beiträge:
    812
    Zustimmungen:
    0
    MacUser seit:
    04.12.2003
    Thx..

    Hab sowas zwar nicht direkt gesucht, aber ich denke ich kanns irgendwann mal gebrauchen.

    Würd mich mal interesieren ob bedarf für solche Tutorials besteht.. Wenn ja, würd ich auch mal ein paar schreiben..

    Greetz
    Arc
     
  3. sevY

    sevY Thread Starter Gast

    Hi Arc,

    Bedarf besteht meines Erachtens definitiv. Ich bekomme oft Emails oder lese Beiträge in Foren, die dieses Problem sehr oft anschneiden.

    Interessant wäre zb Step2, indem man dem Javascript, welches die window.open() Funktion enthält, direkt die Größe der Bilddatei mitgibt und dort dann auch das Positioning definiert.

    Somit hätte man das direkt in einem Schritt erledigt. Meines Erachtens viel eleganter.

    Dazu könnte man direkt beim Einfügen der Bilder über ein CMS mittels der entsprechenden PHP Funktion die Maße zuzüglich des Dateinamens in einen Dbase Table einfügen. Auch alternativ erst über PHP und dann nach JS zu gehen sind möglich, wenn man sich die MySQL Inserts sparen möchte.


    Liebe Grüße

    Yves