Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    Aiuto per rendere compatibile uno script (fade in/out) con Opera

    Ciao a tutti,
    come da titolo ho realizzato (prendendo spunto qua e là ) uno script per il fade in/out di immagini che funziona bene su FF e IE. Il problema nasce però con Opera, pare essere totalmente incompatibile con tale browser.

    Potete darmi una mano?

    codice:
    var browserdetect = null;
    var opacity = null;
    var timerID = new Array();
    var listaBottoni = new Array();
    var delay = 75;
    
    function increaseOpacity(image){
    	obj = image;
    	clearTimer(obj.src);
    	setOpacity(obj,0);
    	timerID[obj.src] = setInterval("fade(obj,1)",delay);
    }
    
    function decreaseOpacity(image){
    	obj = image;
    	clearTimer(obj.src);
    	setOpacity(obj,opacity);
    	timerID[obj.src] = setInterval("fade(obj,0)",delay);
    }
    
    function setOpacity(obj,value) {
    	if ( browserdetect == "mozilla" )
    		obj.style.MozOpacity = value/100;
    	else if ( browserdetect == "ie" ) {
    		obj.style.cssText = "filter:alpha(opacity="+opacity+");";
    		obj.filters[0].opacity = value;
    	}
    }
    
    function clearTimer(_index){
    	for (i = 0; i < listaBottoni.length; i++) {
    		if ( listaBottoni[i].src != _index )
    			setOpacity(listaBottoni[i],opacity);
    	}
    	for ( var index in timerID ) {
    		if ( timerID[index] )
    			clearInterval(timerID[index]);
    	}
    
    }
    
    function fade(obj,in_out){
    	if ( in_out == 1 ) {
    		if ( browserdetect == "mozilla" && obj.style.MozOpacity < 1 )
    			obj.style.MozOpacity = Math.min(parseFloat(obj.style.MozOpacity)+0.1, (opacity/100) );
    		else if ( browserdetect == "ie" && obj.filters[0].opacity < opacity ) {
    			obj.filters[0].opacity += 10;
    		}
    		else
    			clearTimer(obj.src);
    	}
    	else {
    		if ( browserdetect == "mozilla" && obj.style.MozOpacity > 0 )
    			obj.style.MozOpacity = Math.max(parseFloat(obj.style.MozOpacity)-0.1, 0.00);
    		else if ( browserdetect == "ie" && obj.filters[0].opacity > 0 ) {
    			obj.filters[0].opacity -= 10;
    		}
    		else
    			clearTimer(obj.src);
    	}
    }
    
    window.onload = function() {
    	opacity = 55;
    	node = document.getElementsByTagName('body');
    	listaBottoni = getElementsByClass('bottone',node[0],'img');
    	if ( listaBottoni.length > 0 )
    		browserdetect = ( listaBottoni[0].filters ) ? "ie" : ( typeof listaBottoni[0].style.MozOpacity == "string" ) ? "mozilla" : "";
    	for (i = 0; i < listaBottoni.length; i++) {
    		listaBottoni[i].src = 'b_1'+(i)+'.gif';
    		setOpacity(listaBottoni[i],opacity);
    	}
    }
    
    function getElementsByClass(searchClass,node,tag) {
    	var classElements = new Array();
    	if ( node == null )
    		node = document;
    	if ( tag == null )
    		tag = '*';
    	var els = node.getElementsByTagName(tag);
    	var elsLen = els.length;
    	var pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)");
    	for (i = 0, j = 0; i < elsLen; i++) {
    		if ( pattern.test(els[i].className) ) {
    			classElements[j] = els[i];
    			j++;
    		}
    	}
    	return classElements;
    }
    Grazie in aticipo.

  2. #2

  3. #3
    http://javascript.html.it/script/ved...-effetto-fade/

    neanche l'esempio di html.it va con opera

  4. #4
    Con il tuo editor di testo sostituisci tutte le occorrenze di MozOpacity con opacity. Il problema è che così facendo non funzionerà con le vecchie versioni di FF.

    Ti consiglio invece di usare questo visto che funziona anche su Konqueror per Linux
    http://brainerror.net/scripts/javascript/blendtrans/

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.