modification automatique de la taille et de la position de plusieurs div
Bonjour,
Je cherche à faire un fond grisé autour d'un div(div_fenetre) contenu dans un div (div_conteneur).
Pour ca j'utilise 4 div (nord,est,ouest,sud) qui sont situés au nord,est,ouest et sud du div div_fenetre.
Code:
1 2 3 4 5 6 7 8 9
|
<div id="conteneur">
<img src="image.jpg" id="img_fond">
<div id="div_nord" style="position:absolute;"></div>
<div id="div_est" style="position:absolute;"></div>
<div id="div_fenetre" style="position:absolute;"></div>
<div id="div_ouest" style="position:absolute;"></div>
<div id="div_sud" style="position:absolute;"></div>
</div> |
En gros le div fenetre peut se déplacer et se redimensionner.
Donc il faut recalculer à chaque déplacement et chaque redimensionnement les tailles et positions des 4 div (nord,sud,est,ouest)...
Voici les fonction que j'ai fait pour recalculer:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
|
function change_div_nord()
{
var nouv_haut_nord=parseInt(document.getElementById('img_fond').style.height)-(parseInt(document.getElementById('div_sud').style.height)+parseInt(document.getElementById('div_fenetre').style.height));
document.getElementById('div_nord').style.height=parseInt(nouv_haut_nord)+"px";
}
function change_div_est()
{
var nouv_top_est=parseInt(document.getElementById('div_nord').style.height);
document.getElementById('div_est').offsetTop=parseInt(nouv_top_est)+"px";
var nouv_larg_est=parseInt(document.getElementById('div_nord').style.width)-(parseInt(document.getElementById('div_fenetre').style.width)+parseInt(document.getElementById('div_ouest').style.width));
document.getElementById('div_est').style.width=parseInt(nouv_larg_est)+"px";
var nouv_haut_est=parseInt(document.getElementById('div_fenetre').style.height);
document.getElementById('div_est').style.height=parseInt(nouv_haut_est)+"px";
}
function change_div_ouest()
{
var nouv_top_ouest=parseInt(document.getElementById('div_nord').style.height);
document.getElementById('div_ouest').offsetTop=parseInt(nouv_top_ouest)+"px";
var nouv_left_ouest=parseInt(document.getElementById('div_est').style.width)+parseInt(document.getElementById('div_fenetre').style.width);
document.getElementById('div_ouest').offsetLeft=parseInt(nouv_left_ouest)+"px";
var nouv_larg_ouest=parseInt(document.getElementById('div_nord').style.width)-(parseInt(document.getElementById('div_est').style.width)+parseInt(document.getElementById('div_fenetre').style.width));
document.getElementById('div_ouest').style.width=parseInt(nouv_larg_ouest)+"px";
var nouv_haut_ouest=parseInt(document.getElementById('div_fenetre').style.height);
document.getElementById('div_ouest').style.height=parseInt(nouv_haut_ouest)+"px";
}
function change_div_sud()
{
var nouv_top_sud=parseInt(document.getElementById('div_nord').style.height)+parseInt(document.getElementById('div_fenetre').style.height);
document.getElementById('div_sud').offsetTop=parseInt(nouv_top_sud)+"px";
var nouv_haut_sud=parseInt(document.getElementById('img_fond').style.height)-(parseInt(document.getElementById('div_nord').style.height)+parseInt(document.getElementById('div_fenetre').style.height));
document.getElementById('div_sud').style.height=parseInt(nouv_haut_sud)+"px";
} |
Le debugeur js de mozilla firefox me renvoit l'erreur suivante:
Citation:
Erreur*: setting a property that has only a getter
Pour la ligne suivante:
Citation:
var nouv_top_est=parseInt(document.getElementById('div_nord').style.height);
document.getElementById('div_est').offsetTop=parseInt(nouv_top_est)+"px";
Qu'est ce qui est en cause?
Si vous avez une meilleure idée pour le calcul des positions et des tailles je suis preneur...