[CSS] Link Bildwechsel hackt etwas

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

  • [CSS] Link Bildwechsel hackt etwas

    Hallo Leute

    ich möchte für ein paar Links ne Art Hover-Effekt mit nem Bildwechsel erstellen, hab dazu immer ein fertiges Javascript verwendet, jetzt hätt ich's mal via CSS versucht und hab's auch hinbekommen und die Lösung gefiele mir eigentlich besser, da sie auch bei ausgeschalteten JS funktioniert.

    Aber:
    Der Wechsel der Bilder ist nicht so richtig flüssig, was daran liegt dass beim 'hovern' der Browser jedes mal das anzuzeigende Bild neu vom Server requestet, worauf dieser jedoch eh nur mit '304 not modified' antwortet.

    Kann man das irgendwie unterbinden? Steh da grad auf dem Schlauch.

    Gruss
    Quetschi
    Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
    Schön - etwas Geschichte kann ja nicht schaden.
    Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

  • #2
    Re: [CSS] Link Bildwechsel hackt etwas

    gängige methode: beide bilder in eins packen, und dann beim hovern nur background-position ändern, so dass der "andere teil" sichtbar wird.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      oho, das sind natürlich Tricks auf die man nicht sofort kommt

      Danke für den Tipp
      Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
      Schön - etwas Geschichte kann ja nicht schaden.
      Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

      Kommentar


      • #4
        @wahsaga

        dein Tipp hätt sich für mich durchaus plausibel angehört, funktionieren tut er leider trotzdem nicht

        Code:
        HTML
        <a href="http://blabla.de" 
             class="rotate" 
             style="background-image: url(../bilder/swap.jpg);" >Link</a>
        
        CSS
        a.rotate
        {
        	background-repeat:no-repeat;
        	display:block;
        	width: 86px;
        	height: 75px;
        }
        
        a.rotate:link
        {
        	background-position: bottom right;
        }
        
        a.rotate:hover
        {
        	background-position: bottom left;
        }
        Das wechseln dauert leider immer noch zu lang. Merk dabei grade dass das nur im IE der Fall ist, Firefox und Opera requesten scheinbar nicht jedesmal neu.

        Mit ieHTTPHeaders seh ich, dass der IE tatsächlich das Bild jedesmal neu requestet. Ist mein Ansatz für mein Vorhaben grundsätzlich falsch?

        Gruss
        Quetschi
        Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
        Schön - etwas Geschichte kann ja nicht schaden.
        Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

        Kommentar


        • #5
          Original geschrieben von Quetschi
          Mit ieHTTPHeaders seh ich, dass der IE tatsächlich das Bild jedesmal neu requestet. Ist mein Ansatz für mein Vorhaben grundsätzlich falsch?
          nein. dann kann es wirklich nur noch am IE liegen.
          wie sieht bei dir in den internet optionen unter allgemein -> temporäre dateien -> einstellungen "neue version der gespeicherten seiten suchen" aus?
          I don't believe in rebirth. Actually, I never did in my whole lives.

          Kommentar


          • #6
            Die Cache-Einstellungen waren auch mein erster Gedanke - hab es sogar mit der 'Nie'-Einstellung (das Browserfenster zur Sicherheit danach auch geschlossen und neu gestartet) probiert, er klopft trotzdem immer kurz beim Server an

            Seh gerade dass der Server immer folgende header mitschickt:
            Expires: Fri, 05 Aug 2005 14:37:33 GMT
            Cache-Control: max-age=0

            max-age=0 - Beudeuted wohl das Caching unterbunden werden soll?!
            Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
            Schön - etwas Geschichte kann ja nicht schaden.
            Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

            Kommentar


            • #7
              Original geschrieben von Quetschi
              Seh gerade dass der Server immer folgende header mitschickt:
              Expires: Fri, 05 Aug 2005 14:37:33 GMT
              Cache-Control: max-age=0

              max-age=0 - Beudeuted wohl das Caching unterbunden werden soll?!
              jupp - dann ist der IE also vermutlich sogar doch schuldlos.

              also: server richtig kofigurieren (lassen).
              I don't believe in rebirth. Actually, I never did in my whole lives.

              Kommentar


              • #8
                Hm,

                meine httpd.conf enthält hierzu folgendes:
                ExpiresActive On
                ExpiresDefault A0
                ExpiresByType image/gif A3600
                ExpiresByType image/bmp A3600
                ExpiresByType image/jpg A3600
                SetEnvIf Request_Method GET POST force-no-vary

                Trotzdem sendet er auch bei .jpg's
                Cache-Control: max-age=0

                Nur wenn ich

                ExpiresDefault A3600

                setze kommt das auch bei .jpg's (der Bildwechsel ist dann auch im IE schnell), ist aber nicht Sinn der Sache, weil dann der Browser selbst PHP-Dateien cached, was bei dem Projekt aber nicht brauchbar ist.

                Wieso werden die ExpiresByType-Einstellungen vom Apachen ignoriert?

                EDIT:
                Trotzdem frage ich mich, warum der IE auf die dumme Idee kommt das Bild neu zu requesten wenn der lediglich die Anweisung bekommt dass er es anders positionieren soll - bei näherer Überlegung ist's schon auch die Schuld vom IE.
                Zuletzt geändert von Quetschi; 05.08.2005, 17:42.
                Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
                Schön - etwas Geschichte kann ja nicht schaden.
                Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

                Kommentar


                • #9
                  passiert dies nur bei jpegs?
                  ExpiresByType image/jpg A3600
                  in der mime.types des apachen heißt der mime-type für jpegs
                  image/jpeg
                  - also probiere mal, diesen in deiner conf bei ExpiresByType anzugeben.


                  zum edit: ja, das stimmt auch wieder.
                  I don't believe in rebirth. Actually, I never did in my whole lives.

                  Kommentar


                  • #10
                    image/jpeg - hätt ich selber sehen können

                    Jetzt passt es auch im IE - Danke
                    Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
                    Schön - etwas Geschichte kann ja nicht schaden.
                    Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

                    Kommentar


                    • #11
                      bestätigt mal wieder eine meiner grundlegenden theorien:
                      "kaum macht man's richtig, schon funktioniert's!"

                      :-)
                      I don't believe in rebirth. Actually, I never did in my whole lives.

                      Kommentar

                      Lädt...
                      X