Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1

    [js] problema setTimeout all' interno di una classe

    Codice PHP:
    var op = function(){
        

        function 
    opacity(idopacStartopacEndmillisec) {
            
    //speed for each frame
            
    var speed Math.round(millisec 100);
            var 
    timer 0;
            var 
    self this;
            
    //determine the direction for the blending, if start and end are the same nothing happens
            
    if(opacStart opacEnd) {
                for(
    opacStart>= opacEndi--) {
                    
    setTimeout(function(){self.changeOpac(i,id)},(timer speed));
                    
    timer++;
                }
                
            } else if(
    opacStart opacEnd) {
                for(
    opacStart<= opacEndi++)
                    {
                    
    setTimeout(function(){self.changeOpac(i,id)},(timer speed));
                    
    timer++;
                }
            }
        };
        
        function 
    changeOpac(opacityid) {
            var 
    object document.getElementById(id).style
            
    object.opacity = (opacity 100);
            
    object.MozOpacity = (opacity 100);
            
    object.KhtmlOpacity = (opacity 100);
            
    object.filter "alpha(opacity=" opacity ")";
        };

        
        return {
            
    opacity:opacity
            
        
    }
        
    }();

    <
    body>
        <
    script>
        
    window.onload=function(){
            
    op.opacity('box'01004000)
            
            
    //obj.opacity('box', 0, 100, 4000)
        
    }
        
    </script>
        <div id="box">
            

    bla bla bla bla bla blabla bla blabla bla bla</p>
        </div>

    </body> 
    il metodo changeOpac non viene trovato:
    Codice PHP:
    setTimeout(function(){self.changeOpac(i,id)},(timer speed)); 
    non so più cosa fare le ho provate tutte, come si può fare?
    grazie

  2. #2
    forse sarete sotto l' ombrellone .... beati voi

    up apritemi uno spiraglio di luce.....sto impazzendo con stò codice :berto:


  3. #3
    up

  4. #4
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Prova cosi:
    codice:
    setTimeout("self.changeOpac("+i+",'"+id+"')",(timer * speed));
    Da errori? Se togli il timer funziona? Metti una pagina online cosi da ricreare l'errore/problema.
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  5. #5
    Originariamente inviato da cavicchiandrea
    Prova cosi:
    codice:
    setTimeout("self.changeOpac("+i+",'"+id+"')",(timer * speed));
    Da errori? Se togli il timer funziona? Metti una pagina online cosi da ricreare l'errore/problema.
    come mi hai consigliato ho fatto la modifica ma non funzia ancora.....

    qui lo script
    il timer funziona, però sembra non riesca a trovare la funzione
    changeOpac


  6. #6
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    cosi funziona:
    codice:
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
    <title>Form</title>
    <script language="Javascript">
    <!--
    	function opacity(id, opacStart, opacEnd, millisec) {
    		//speed for each frame
    		var speed = Math.round(millisec / 100);
    		var timer = 0;
    		var self = this;
    		//determine the direction for the blending, if start and end are the same nothing happens
    		if(opacStart > opacEnd) {
    			for(i = opacStart; i >= opacEnd; i--) {
    				setTimeout("changeOpac("+i+",'"+id+"')",(timer * speed));
    				timer++;
    			}
    			
    		} else if(opacStart < opacEnd) {
    			for(i = opacStart; i <= opacEnd; i++)
    				{
    				setTimeout("changeOpac("+i+",'"+id+"')",(timer * speed));
    				timer++;
    			}
    		}
    	};
    	
    	function changeOpac(opacity, id) {
    		var object = document.getElementById(id).style; 
    		object.opacity = (opacity / 100);
    		object.MozOpacity = (opacity / 100);
    		object.KhtmlOpacity = (opacity / 100);
    		object.filter = "alpha(opacity=" + opacity + ")";
    	};
    
    
    window.onload=function(){
    		opacity('box', 0, 100, 4000);
    	}
    //-->
    </script>
    <style type="text/css">
    	#box {
    		width: 100px;
    		height: 100px;
    		background: #ccc
    	}
    </style>
    </head>
    <body>
    <div id="box">
    		
    
    bla bla bla bla bla blabla bla blabla bla bla</p>
    	</div>
    </body>
    </html>
    ma l'ho dovuto leggermente modificare.
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  7. #7
    grazie per il rep, quello che mi suggerisci lo avevo testato e funzionava bene anche a me, ma avrei bisogno di usare una classe, lo script finale avrà più metodi di quelli postati a inizio post però sono incappato in questo odioso setTimeout che non riesco a far funzionare dentro alla classe


  8. #8
    up

  9. #9
    raga non sono ancora riuscito a risolvere

  10. #10
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

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.