Ergebnis 1 bis 4 von 4
  1. #1
    simons.theSorce ist offline Grünschnabel
    registriert
    25-02-2012
    Beiträge
    4

    SLIDESHOW ( Programmunterbrechung bei verlassen des Browsers )

    Guten Abend,

    ich habe eine Fotoslideshow geschrieben, die automatisch alle 5 Sekunden das Bild wechselt. Jetzt ist es aber so, dass wenn ich den Browsertab in dem der Slider läuft verlasse, Javascript den Programmablauf unterbricht und erst dann wieder die zu letzt gelaufene Funktion ausführt, wenn ich zurückkehre.

    Gibt es die Möglichkeit diese Programmunterbrechung zu verhindern?

    MfG,

    Simon

  2. #2
    Avatar von kkapsner
    kkapsner ist offline Super Moderator
    registriert
    28-03-2008
    Beiträge
    17.672

    AW: SLIDESHOW ( Programmunterbrechung bei verlassen des Browsers )

    Welcher Browser? Code? Testlink?

  3. #3
    simons.theSorce ist offline Grünschnabel
    registriert
    25-02-2012
    Beiträge
    4

    AW: SLIDESHOW ( Programmunterbrechung bei verlassen des Browsers )

    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=iso-8859-1" />
    <title>Unbenanntes Dokument</title>
    <?php
    	$erg = scandir( "bilder" );
    	
    	array_shift( $erg );
    	array_shift( $erg );
    	
    	natcasesort( $erg );
    	
    	$temp = array();
    	
    	foreach( $erg as $val ) { array_push($temp, $val); }
    	
    	echo	"<script type='text/javascript'>".
    			"var bilder = [];";
    	
    	foreach( $temp as $key => $val ) {
    	
    		echo	"bilder[".$key."] = new Image();".
    				"bilder[".$key."].src = 'bilder/".$val."';";
    				
    	}
    	
    	echo "</script>";
    ?>
    <style>
    #slider		{
    			position:relative;
    			}
    			
    #fadeImg	{
    			position:absolute;
    			top:0px;
    			left:0px;
    			filter:alpha(opacity:0);
    			opacity:0.0;
    			}
    </style>
    </head>
    <body>
    <div id="slider">
    <img src='bilder/<?php echo $temp[0]; ?>' id="slideImg" />
    <div>
    </body>
    <script type="text/javascript">
    
    function fader( arg1, arg2, arg3 ) {
    
    	if( arg2[0] > arg2[1] )	{
    	
    		arg2[0] = Math.round((arg2[0]-arg2[2])*100)/100;
    		
    	}else if( arg2[0] < arg2[1] ) {
    	
    		arg2[0] = Math.round((arg2[0]+arg2[2])*100)/100;
    		
    	}else {
    	
    		if(typeof(arg3) == 'function'){arg3();}
    		
    		return;
    		
    	}
    
    	if( document.all )	{	
    	
    		arg1.style.filter = "alpha( opacity = " + ( arg2[0] * 100 ) + " )";
    		
    	}else	{
    	
    		arg1.style.opacity = arg2[0];
    		
    	}
    
    	window.setTimeout( function(){fader(arg1,arg2,arg3);}, arg2[3] );
    	
    }
    
    var slideFlag = 1;
    
    function sliderChange()	{
    	
    	slideImgOne = document.getElementById( 'slideImg' );
    	
    	slideImgTwo = slideImgOne.cloneNode( true );
    	slideImgTwo.id = 'fadeImg';
    	slideImgOne.parentNode.insertBefore( slideImgTwo, slideImgOne );
    	
    	slideImgTwo.src = bilder[slideFlag].src;
    	
    	fader( slideImgTwo, [0,1,0.1,100], slideEnd );
    
    	if( slideFlag == bilder.length-1 ) {
    	
    		slideFlag = 0;
    		
    	}else { slideFlag++; }
    
    }
    
    function killEm()	{
    
    	arguments[0].parentNode.removeChild( arguments[0] );
    	
    }
    
    function slideEnd()	{
    
    	slideImgOne.parentNode.removeChild( slideImgOne );
    	slideImgTwo.id = 'slideImg';
    	
    }
    
    window.setInterval('sliderChange()',3000);
    </script>
    </html>

    Hier der Code! Das Problem ist, dass wenn man während des Fadevorgangs einen anderen Tab aufruft es zu einer massiven Verzögerung im Programmablauf kommt und das Programm so einen Fehler produziert.

    Meine Frage ist nun, ob es eine Möglichkeit gibt, diese Verzögerung zu unterbinden.

    Vielen Dank schon mal!
    Geändert von simons.theSorce (26-02-2012 um 13:56 Uhr)

  4. #4
    Avatar von kkapsner
    kkapsner ist offline Super Moderator
    registriert
    28-03-2008
    Beiträge
    17.672

    AW: SLIDESHOW ( Programmunterbrechung bei verlassen des Browsers )

    PHP-Code bei einem JS-Problem zu schreiben ist nie eine gute Idee -> gib' immer das, was im Browser ankommt an.

    Du hast noch immer nicht gesagt, in welchem Browser das Problem auftritt.

    Was heißt genau "massive Verzögerung im Programmablauf" und was ist der Fehler, der dann produziert wird (steht etwas in der Fehlerkonsole (Wo finde ich die Fehlerkonsole?)?)?

    PS: Der Code ist echt nicht gut geschrieben. arg1 - arg3 sind ja wohl mal die aussagelosesten Variablen-/Parameterbezeichnungen, die es gibt.

Ähnliche Themen

  1. how browsers work
    Von dkdenz im Forum Links & Tutorials mit Tipps & Tricks zu JavaScript, CSS, PHP, MySQL
    Antworten: 0
    Letzter Beitrag: 17-08-2011, 17:43
  2. Höhe des Anzeigebereiches des Browsers
    Von ZaBuxyz im Forum JavaScript
    Antworten: 0
    Letzter Beitrag: 04-06-2009, 22:00
  3. Zeilenumbrüche des Browsers ermitteln
    Von NicolasOnline im Forum JavaScript
    Antworten: 4
    Letzter Beitrag: 30-10-2006, 23:39
  4. Grafik in der Adresszeile des Browsers...
    Von luca im Forum JavaScript
    Antworten: 8
    Letzter Beitrag: 16-09-2002, 15:27
  5. Zurück-Funktion des Browsers
    Von java-thg im Forum JavaScript
    Antworten: 20
    Letzter Beitrag: 04-09-2002, 19:09

Stichworte

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •