Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di Donovant
    Registrato dal
    Sep 2005
    residenza
    London
    Messaggi
    1,329

    Come mai a volte mi da "width=0"

    Salve ho creato una gallery, in cui l'immagine viene caricata al "volo" in un div->img, anche loro creati al volo. Il problema è che quando l'immagine appare a volte mi viene data "width" uguale a ZERO, ma l'immagine viene caricata correttamente (tutta), ma il "width" in questione mi serve per centrarla, e se mi da ZERO, va in errore e la mette dove gli pare a lui (il PC credo) ^_^.

    Di seguito la parte di codice in esame:
    codice:
    velo_photo = new Element("div",{styles:{ "height":$("fx_content").getStyle("height").toInt()+"px", "opacity":"0" },
    								   id:"velo_photo"			  
    	}).addEvent("click", function(){ $("box_photo").fade(0); $("velo_photo").fade(0); }
    	
    	);
    	box_photo = new Element("div",{styles:{ "height":$("fx_content").getStyle("height").toInt()+"px", "opacity":"0", "border":"1px solid red" },
    								   id:"box_photo"			  
    	});
    	
    	img_photo = new Element("img",{
    						src:"gallerie/"+arrPics[indImg]["idg"]+"/"+arrPics[indImg]["path"], 	
    				   styles:{},
    				   id:"photo"
    	});
    	
    	
    	velo_photo.inject($("fx_content"));
    	box_photo.inject($("fx_content"));
    	img_photo.inject(box_photo);
    	
    	box_photo.setStyle("margin-left", (($("fx_content").getStyle("width").toInt() - img_photo.getStyle("width").toInt() )/2)+"px");
    Beati gli smemorati, perchè avranno la meglio anche sui loro errori...

    My gallery: http://donovant.deviantart.com/gallery/

  2. #2
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649

    Re: Come mai a volte mi da "width=0"

    non attendi che l' immagine sia completamente caricata

  3. #3
    Utente di HTML.it L'avatar di Donovant
    Registrato dal
    Sep 2005
    residenza
    London
    Messaggi
    1,329
    E come dovrei fare? Come faccio a sapere quando le immagini sono caricate completamente?
    Grazie.
    Beati gli smemorati, perchè avranno la meglio anche sui loro errori...

    My gallery: http://donovant.deviantart.com/gallery/

  4. #4
    Utente di HTML.it L'avatar di Donovant
    Registrato dal
    Sep 2005
    residenza
    London
    Messaggi
    1,329
    Ah, cmq volevo dire che fino ad ora l'ho provato in locale, quindi il caricamento dovrebbe essere più veloce...immagino online
    Però se l'immagine non è completamente caricata come mai me la fa vedere (tutta)?
    Beati gli smemorati, perchè avranno la meglio anche sui loro errori...

    My gallery: http://donovant.deviantart.com/gallery/

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    prova cosi:

    codice:
    var img_photo = Asset.image(pathImage, {
        id: 'photo',
        onLoad:function(){
          //imposto lo stile
        }
    });

  6. #6
    Utente di HTML.it L'avatar di Donovant
    Registrato dal
    Sep 2005
    residenza
    London
    Messaggi
    1,329
    Si stavo vedendo come funziona il metodo...ma per ora con scarsi successi....vedremo.
    Beati gli smemorati, perchè avranno la meglio anche sui loro errori...

    My gallery: http://donovant.deviantart.com/gallery/

  7. #7
    Utente di HTML.it L'avatar di Donovant
    Registrato dal
    Sep 2005
    residenza
    London
    Messaggi
    1,329
    Risolto:
    codice:
    $$(".pics").each(function(el, jj){
    				var loadImg = Asset.image("gallerie/"+arrPics[0]["idg"]+"/mini/"+arrPics[jj]["path"], {
    						id: "img"+((pag-1)*$$(".pics").length + jj),
    						title: "foto"+((pag-1)*$$(".pics").length + (jj + 1))+" di "+numPics,
    						onLoad:function(){
    							img = $$(".pics")[jj].getChildren("img")[0];
    							img.set("id", ((pag-1)*$$(".pics").length + jj) );
    							img.set("title", "foto"+((pag-1)*$$(".pics").length + (jj + 1))+" di "+numPics );
    							img.set("src", "gallerie/"+arrPics[0]["idg"]+"/mini/"+arrPics[jj]["path"] );
    							margin_align = ( $$(".pics")[0].getStyle("width").toInt() - img.getStyle("width").toInt() )/2;
    							margin_align = (margin_align > 0)? margin_align : 0;
    							img.setStyles({"margin-left":margin_align+"px"});
    							$$(".pics")[jj].fade(1);
    							//alert(this.get("width")+" . "+nphoto_width );
    							nphoto_width += "foto("+(jj+1)+"): "+this.get("width")+"px width
    ";
    							$("log").set("html",nphoto_width);
    						}
    				});//Asset.image
    			});//EACH
    Ora sembra funzionare....grazie.
    Beati gli smemorati, perchè avranno la meglio anche sui loro errori...

    My gallery: http://donovant.deviantart.com/gallery/

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 © 2026 vBulletin Solutions, Inc. All rights reserved.