11548 sujets

JavaScript, DOM et API Web HTML5

Salut à tous. Je m'amuse à jouer avec les fade en JS pour faire une petite galerie photo. le code marche niquel sur firefox,safariPC,ie6(malgré un GROS cas particulier) mais Opéra refuse de faire le fade.

Je me demande si il refuse la propriété CSS d'opacity (ce n'est pas ce que j'ai trouvé sur google...) et pareil pour setTimelimit..

Le code s'éxecute sans accroche sauf ... qu'il n'y à pas de fade entre les changements d'images pour opéra

les deux fonctions JS Smiley smile


var number_img;
function fade_in(number){
	
	if(number != "" && number != undefined){
		number_img = number;
	}
	var subImages = document.getElementById('previewPane');
	
	if(document.all){ /* POUR NOTRE AMI IE */
		if(subImages.style.filter == "" || subImages.style.filter == undefined){
			var tone = 100;
			subImages.style.filter = 'alpha(opacity="'+parseInt(tone)+'")';
		}else{
			var decoupage = subImages.style.filter.split('"');
			x = parseFloat(decoupage[1]-10);
			subImages.style.filter = 'alpha(opacity="'+x+'")';
		}
		if(subImages.style.filter != 'alpha(opacity="0")'){
			setTimeout('fade_in()',5);
		}else{
			showPreview('contenu/galerie/image'+number_img+'_big.jpg',''+number_img+'');
		}
	}else{
		if(subImages.style.opacity == "" || subImages.style.opacity == undefined){
			subImages.style.opacity = 1;
		}else{
			subImages.style.opacity = (subImages.style.opacity-0.1);
		}
		if(subImages.style.opacity != "0"){
			setTimeout('fade_in()',5);
		}else{
			showPreview('contenu/galerie/image'+number_img+'_big.jpg',''+number_img+'');
		}
	}
}


La fonction showPreview permute les images. Et rappelle ensuite la fonction suivante


function fade_out(){
	var subImages = document.getElementById('previewPane');
	if(document.all){
		if(subImages.style.filter == 'alpha(opacity="0")'){
			subImages.style.filter = 'alpha(opacity="10")';
		}else{
			var decoupage = subImages.style.filter.split('"');
			x = parseInt(decoupage[1]);
			x = x+10;
			subImages.style.filter = 'alpha(opacity="'+x+'")';
		}
		if(subImages.style.filter == 'alpha(opacity="100")'){
			return false;
		}else{
			setTimeout('fade_out()',5);
		}
	}else{
		if(subImages.style.opacity == "0"){
			subImages.style.opacity = 0.1;
		}else{
			subImages.style.opacity = x;
		}
		x = (parseFloat(subImages.style.opacity))+0.1;
		if(subImages.style.opacity == 1){
			return false;
		}else{
			setTimeout('fade_out()',5);
		}
	}
}



Si vous pouviez m'aiguiller ....

Rude