DIV Layer einmalig mit Schließ-Funktion

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • DIV Layer einmalig mit Schließ-Funktion

    Hallo Zusammen,
    ich möchte einen DIV Layer erstellen der nur einmal pro Besucher angezeigt wird in einer Session. Dieser soll über Klick zu schließen sein. Habe den Code soweit vorbeireitet nur bekomme ich irgendwie den Java Part nicht ans laufen.

    PHP-Code:
    <?php session_start();
        if(
    $_SESSION["welcome"] != true)
        { 
           
    $_SESSION["welcome"] = true;

           echo 
    "<div id='layer'>Hier steht der Text, der nur 1x  angezeigt werden soll.</br><span  id='close'>X</span></div>";
        }  { 
    ?>
        <script type="text/javascript">

        $(document).ready(function(){ 
          $('#close').click(function() { 
            $('#layer').fadeOut(500);
          });
          window.setTimeout(function() {
            win = $(window);
            $('#layer')
              .css({
                'width': layerWidth + 'px',
                'height': layerHeight + 'px',
                'top': '0px',
                'left': '-' + layerWidth + 'px'
              })
              .animate({
                'top': win.height() / 2 - layerHeight / 2,
                'left': win.width() / 2 - layerWidth / 2
            }, 0000);
          }, 0000);
        });
        </script>
        <?php ?>

  • #2
    Hallo und willkommen im Forum,

    JavaScript ist nicht Java und dass du den Code nicht zum Laufen bekommst ist keine brauchbare Fehlerbeschreibung. Bitte etwas präziser werden. Ggf. hilft es dir auch schon, mal das Firebug-Add-On für Firefox zu installieren und den Code damit zu debuggen.

    Gruß,

    Amica
    [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
    Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
    Super, danke!
    [/COLOR]

    Kommentar


    • #3
      Also der Div Layer erscheint bei aufrufen der Seite, also er liegt über dem Rest der Seite und verdeckt somit alles. Darin soll später etwas dargestellt werden und durch klicken auf ein X kann der Layer geschlossen werden.
      Dieser soll aber während des gesamten Zeitraum des Besuchs auch geschlossen bleiben. Bedeutet ich arbeite mit einer Session die dem User eine ID zuordnet.
      Das eigentliche Problem besteht nicht in der Darstellung des DIV Layers, sondern ist meiner Meinung nach die übergabe vom Javascript in den Span Tag. Heißt, die CLICK-function hat auf das X irgendwie keine Auswirkungen.
      Hier mal der gesamte Code.
      PHP-Code:
      <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
      <html xmlns="http://www.w3.org/1999/xhtml">
      <head>
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
      <title>Unbenanntes Dokument</title>
      <style type="text/css">
      #layer {
          position: absolute;
          left: 0px;
          top: 0px;
          height: 100%;
          width: 100%;
          background-image: url(Bilder/bgface.png);
          background-repeat: repeat;
          text-align: center;
          vertical-align: middle;
      }
      </style>
      </head>
      <?php session_start();
      if(
      $_SESSION["welcome"] != true)

         
      $_SESSION["welcome"] = true;

         echo 
      "<div id='layer'>Hier steht der Text, der nur 1x angezeigt werden soll.</br><span id='close'>X</span></div>";
      }  { 
      ?>
      <script type="text/javascript">

      $(document).ready(function(){ 
        $('#close').click(function() { 
          $('#layer').fadeOut(500);
        });
        window.setTimeout(function() {
          win = $(window);
          $('#layer')
            .css({
              'width': layerWidth + 'px',
              'height': layerHeight + 'px',
              'top': '0px',
              'left': '-' + layerWidth + 'px'
            })
            .animate({
              'top': win.height() / 2 - layerHeight / 2,
              'left': win.width() / 2 - layerWidth / 2
          }, 0000);
        }, 0000);
      });
      </script>
      <?php ?>


      <body>
      </body>
      </html>

      Kommentar


      • #4
        Wenn das das vollständige Script ist, liegt es wohl daran, dass du die JavaScript-Library nicht einbindest, die du benutzen willst. Ich vermute mal, dass es sich bei dem JS-Code um jQuery handelt. Also musst du auch das jQuery-Framework-Script einbinden.

        Außerdem ist mir aufgefallen, dass session_start() bei dir sehr spät aufgerufen wird. Eigentlich muss es vor der ersten Ausgabe stehen. Dass es bei dir trotzdem funktioniert, liegt daran, dass du Output Buffering eingeschaltet hast, was aber nicht auf jedem Webspace gleichermaßen eingestellt ist.
        [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
        Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
        Super, danke!
        [/COLOR]

        Kommentar


        • #5
          Ja, habe ich inzwischen gesehen.
          Danke dir

          Kommentar

          Lädt...
          X