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

    [jQuery] centrare un div

    Ciao,
    sto facendo una piccola fotogallery, nella pagina ho l'elenco dei link alle foto:
    al click imposto l'attributo html del div e lo mostro al centro della pagina:
    codice:
    function centerDiv(div){
      var DIVwidth = $(div).width();	
      var DIVheight = $(div).height();
      var SCREENwidth = $(document).width();
      var SCREENheight = $(window).height();
      $(div).css({"position":"absolute","left":(SCREENwidth-DIVwidth)/2+"px","top":(SCREENheight-DIVheight)/2+"px"});
    }	
    
    $(document).ready(function(){
      $("a[rel='slide']").click(function(event){
        event.preventDefault();
        $("#popupfoto").html('[img]' + $(this).attr('href') + '[/img]');
        centerDiv('#popupfoto');
        $("#popupfoto").fadeIn("slow");
      });
    });
    Il problema è che la prima volta che faccio click su un link il div mi appare con lo spigolo in alto a sinistra quasi al centro dello schermo, in pratica come $(div).width() e $(div).height() mi restituisce il valore 24 (dato probabilmente dal border e dal padding del div).

    La seconda volta che faccio click sullo stesso link invece funziona correttamente, ed infatti questa volta i valori width e height del div vengono letti correttamente.

    Se non ho capito male la prima volta che faccio click sul link non fa in tempo a caricare l'immagine, mentre la seconda volta ce l'ha in cache, e quindi la carica prima di chiamare la funzione centerDiv, come posso fare?

    Grazie

  2. #2
    Bisognerebbe caricare l'immagine prima di chiamare la funzione centerDiv, qualcuno sa come si fa?

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.