kwb
08-04-2013, 19:38
Ciao a tutti!
Ho sviluppato uno script in JS-jQuery che posiziona al centro ( orizzontalmente ) un div.
Ho dovuto fare questa cosa perchè ho un'immagine e questo div appunto, dentro il "wrapper" diciamo, ciò che li racchiude. La struttura ( semplificata ) è la seguente:
<div class="wrapper">
<img src"blabla.jpg" style="float: left;" id="miaImg"/>
<div id="altro"></div>
</div>
Ora, ho bisogno di posizionare al centro del div wrapper il mio div altro. Chiaramente per farlo devo prima togliere la larghezza dell'immagine, per capire quanto spazio mi avanza per posizionare l'elemento.
Detto ciò, ho scritto questo in JS:
$(document).ready(
function centerHeaderText(){
var widthParent = $(".wrapper").width();
var widthLogo = $("#miaImg").width();
var widthElement = $("#altro").width();
widthParent -= widthLogo;
$("#altro").css({ "position": "relative", "left": (widthParent-widthElement)/2});
}
)
Questo script funziona perfettamente su tutti i browser, eccetto Chrome.
Ho letto che il problema può essere dovuto al fatto che siccome lo script viene eseguito quando il DOM è carico ( ma le immagini non ancora ), allora Chrome fa pasticci...
Prendendo spunto da qui: http://stackoverflow.com/questions/2439706/jquery-problem-in-getting-elements-width-in-chrome ho provato anche a cambiare l'evento con $(window).load ma anzi, peggiora la situazione, calcolandomi un valore completamente errato per qualunque browser.
Chiudo dicendo che per altre ragioni, non ho la possibilità di specificare a priori la dimensione dell'immagine ne nel tag html ne nel css ( e non voglio specificarle!! )
Qual è il problema? Come si risolve? :stordita:
Ho sviluppato uno script in JS-jQuery che posiziona al centro ( orizzontalmente ) un div.
Ho dovuto fare questa cosa perchè ho un'immagine e questo div appunto, dentro il "wrapper" diciamo, ciò che li racchiude. La struttura ( semplificata ) è la seguente:
<div class="wrapper">
<img src"blabla.jpg" style="float: left;" id="miaImg"/>
<div id="altro"></div>
</div>
Ora, ho bisogno di posizionare al centro del div wrapper il mio div altro. Chiaramente per farlo devo prima togliere la larghezza dell'immagine, per capire quanto spazio mi avanza per posizionare l'elemento.
Detto ciò, ho scritto questo in JS:
$(document).ready(
function centerHeaderText(){
var widthParent = $(".wrapper").width();
var widthLogo = $("#miaImg").width();
var widthElement = $("#altro").width();
widthParent -= widthLogo;
$("#altro").css({ "position": "relative", "left": (widthParent-widthElement)/2});
}
)
Questo script funziona perfettamente su tutti i browser, eccetto Chrome.
Ho letto che il problema può essere dovuto al fatto che siccome lo script viene eseguito quando il DOM è carico ( ma le immagini non ancora ), allora Chrome fa pasticci...
Prendendo spunto da qui: http://stackoverflow.com/questions/2439706/jquery-problem-in-getting-elements-width-in-chrome ho provato anche a cambiare l'evento con $(window).load ma anzi, peggiora la situazione, calcolandomi un valore completamente errato per qualunque browser.
Chiudo dicendo che per altre ragioni, non ho la possibilità di specificare a priori la dimensione dell'immagine ne nel tag html ne nel css ( e non voglio specificarle!! )
Qual è il problema? Come si risolve? :stordita: