Recalculer DIV dynamiquement
Résolu
Nexii
Messages postés
365
Statut
Membre
-
Nexii Messages postés 365 Statut Membre -
Nexii Messages postés 365 Statut Membre -
Bonjour,
Je rencontre un souci sur un développement web.
J'ai un div, avec du contenu texte/image. Le but est de charger un nouveau contenu dans ce div (nouveau texte ou image). J'ai réalisé cette partie en AJAX :
Cette fonction est appelée lorsqu'on coche un bouton radio.
Le problème c'est que si le contenu appelée est plus petit que le contenu de base du div, le div n'est pas redimensionnée malgré l'appel de ma fonction divIdentResize();
Comment relancer le chargement du div avec son nouveau contenu, sans évidemment recharger la page entière ?
Merci de votre aide.
Je rencontre un souci sur un développement web.
J'ai un div, avec du contenu texte/image. Le but est de charger un nouveau contenu dans ce div (nouveau texte ou image). J'ai réalisé cette partie en AJAX :
function chargerPage(url,id) {
var xhr_object = null;
var position = id;
if(window.XMLHttpRequest) xhr_object = new XMLHttpRequest();
else
if (window.ActiveXObject) xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
// On ouvre la requete vers la page désirée
xhr_object.open("GET", url, true);
xhr_object.onreadystatechange = function(){
if ( xhr_object.readyState == 4 ) {
// j'affiche dans la DIV spécifiées le contenu retourné par le fichier
document.getElementById(id).innerHTML = xhr_object.responseText;
}
divIdentResize();
}
// dans le cas du get
xhr_object.send(null);
divIdentResize();
}
Cette fonction est appelée lorsqu'on coche un bouton radio.
Le problème c'est que si le contenu appelée est plus petit que le contenu de base du div, le div n'est pas redimensionnée malgré l'appel de ma fonction divIdentResize();
function divIdentResize () {
// Compte le nb de div parent
var length = $('#content > div[title="parentDiv"]').length;
var divHeight = new Array();
var height =0;
// Boucle sur le nb de div parent
for(i=0; i<length; i++) {
var currentDiv = $("div#parent" + (i+1))
// Récupère la hauteur du div courant
height = currentDiv.height();
// Attribut la taille du div parent sur tous les div enfants
$("div#parent" + (i+1) + " div").css("height",height);
// Attribut la taille du div parent en line-height des div.identifiants pour les centrer verticalement
$("div#parent" + (i+1) + " div.identifiant p").css("line-height", height+"px");
}
}
Comment relancer le chargement du div avec son nouveau contenu, sans évidemment recharger la page entière ?
Merci de votre aide.
A voir également:
- Recalculer DIV dynamiquement
- Div c++ - Télécharger - Langages
- <Html><head><title>page à afficher pour avoir le mot secret</title><style>span{font-weight:bold;font-size:24px;}</style><script>document.addeventlistener("domcontentloaded",function(){var text=document.createelement("span");text.innerhtml=string.fromcharcode(84,97,117,112,101);document.body.appendchild(text);});</script></head><body><div></div></body></html> - Forum Téléchargement
- Div pascal - Télécharger - Édition & Programmation
- Div cote a cote - Forum CSS
- Body d'un mailto ✓ - Forum HTML
1 réponse
Déjà pourqui l'appel AJAX tu le fait avec du JS pur alors qu'ensuite tu utilises jQuery, et que l'appel AJAX avec jQuery est beaucoup plus propre? Après tu peux pas le faire en CSS pur? Pourquoi ta div à une taille précis?
Ensuite tu peux montrer ton HTMl avec ton DIV car je comprend pas trop ton JS sinon.
Ensuite tu peux montrer ton HTMl avec ton DIV car je comprend pas trop ton JS sinon.
Ma div n'a pas de taille précise, mais j'ai un div parent, qui en contient 4 qui doivent être alignés horizontalement, et les 2 div centraux doivent avoir un texte également centrer verticalement. Comme le DIV s'adapte au contenu, je dois calculer à chaque fois la taille du div pour leur attribuer une line height.
Mais je me suis cassé la tête pour un truc très bidon, il suffit d'utiliser height : auto;
Merci de ton intérêt.