Bild zittert

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

  • Bild zittert

    Hi,

    brauch mal wieder eure Hilfe! Habe mir ein Script gebastelt, dass wenn man über ein Bild fährt, dieses automatisch sich langsam vergrößert und bei onmouseout dieses sich automatisch verkleinert. Funktioniert auch perfekt, nur wenn man während es sich vergrößert wieder drüber fährt, dann fängt das Bild an zu zittern und hört nicht mehr auf!

    Bin da mit meinem Latein am ende. Ich hoffe mir kann jemand helfen, wie ich das Problem lösen kann!

    Hier der Code:

    Code:
    <script language="javascript" type="text/javascript">
    
    var breite;
    var end_groeße;
    var bild_name;
    var x=0;
    
    function auslesen(name,todo)
    {	
    	bild_name=name;
    	breite=document.images[bild_name].width;
    
    	if (todo=="rise"  && breite == 25)
    		{rise();}
    	else
    		{shrink();}
    }
    
    function rise()
    { //alert (x);
    	if (x==0)
    		{x=breite;}
    
    	if (x < 51)
    	{document.getElementsByTagName("span")[0].firstChild.data=document.images[bild_name].width;
    		document.images[bild_name].width=x;
    		x++;
    		window.setTimeout("rise()",100);
    	}
    
    }
    
    function shrink()
    { 
    	if (x > 24)
    	{document.getElementsByTagName("span")[0].firstChild.data=document.images[bild_name].width;
    		document.images[bild_name].width=x;
    		x--;
    		window.setTimeout("shrink()",100);
    	}
    
    }
    
    </script>
    
    
    </head>
    
    <body>
    </body>
    Widht:<span>--</span>
    <div style="position:absolute; width:150px; height:150px; z-index:1; overflow : auto; visibility:visibel; left: 79px; top: 96px;">
    	<table width="100%" height="100%" border="1">
    	 <tr>
    		<td align="center">
    			<img src="../../Layout/Zusatz/button_zurueck_normal.gif" 
    				onMouseOver="auslesen('bild_1','rise')" 
    				onMouseOut="auslesen('bild_1','shrink')" name="bild_1" width="25">
    		</td>
    	  </tr>
    	 </table>
    </html>

  • #2
    nur wenn man während es sich vergrößert wieder drüber fährt, dann fängt das Bild an zu zittern und hört nicht mehr auf
    das hat damit zu tun dass das script zu diesem zeitpunkt nicht komplett abgearbeitet sein muss, da setTimeout eine zeitliche verzögerung ist. du musst das bild immer erst auf die originalgröße bringen und dann skalieren
    gruss
    peter
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Kommentar


    • #3
      Also, wenn ich dich richtig verstanden habe, dann sollte das Script erst wieder ausgeführt werden, wenn der Timeout abgeschlossen ist!

      Das habe ich mir auch schon so gedacht! Nur ich komme einfach nicht darauf, wie ich das hinbekommen kann!

      Hast du vieleicht eine Idee?!?

      Kommentar


      • #4
        Re: Bild zittert

        Original geschrieben von envision-me
        Funktioniert auch perfekt, nur wenn man während es sich vergrößert wieder drüber fährt, dann fängt das Bild an zu zittern und hört nicht mehr auf!
        absolut logisch - du startest beim zweiten überfahren dein script erneut, hast jetzt also zwei "instanzen" des vergrößerungscriptes, die beide parallel am selben bild herumdoktoren - nix gut.


        setze dir einfach ein flag, in dem du dir merkst, dass die funktion schon aufgerufen wurde, und gerade "am arbeiten" ist.
        so lange dieses flag gesetzt ist, startest du keine neue instanz der funktion.
        und wenn die funktion "fertig" ist, lässt du sie das flag wieder auf false setzen.
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          So, habe mir nun Variabeln geschaffen die die Funktion rise und shrink sperren, sobald sie einmal ausgeführt wurde. Und sie da es klappt!

          Danke für deinen Tipp!

          Kommentar

          Lädt...
          X