Je voudrais savoir si avec du JavaScript, il serait possible de récupérer la hauteur d'une DIV selon le type d'écran (smartphone, tablette, ...) puisqu'elle varie selon les appareils.
L'idée serai ensuite de donner cette valeur à une variable CSS dans la balise de la DIV grâce à la fonction attr() en espérant, normalement oui, que je puisse utiliser cette variable pour dimensionner parfaitement un objet enfant en ajoutant par calcul des padding left et right. Je précise que ce second objet a en attribut une rotation à 270° afin que l'écriture soit perpendiculaire à la DIV.
J'ai déjà testé avec succès la seconde partie en ajoutant la valeur "à la main" dans la balise. Ce qui me pose vraiment problème, c'est de récupérer cette valeur ...
var el = document.getElementById('tonID');
// inclu les padding, border & scrollbar.
console.log(el.offsetHeight);
// inclu les padding.
console.log(el.clientHeight);
Si je comprends bien, dans mon cas, puisque c'est la hauteur intérieur qu'il me faut, je dois utiliser celle qui inclut que les padding ? Si c'est ça, c'est cool, j'airai pas à soustraire les border dans les calculs !!!
Je vais tester mais pas ce soir et je reviendrai dire si c'est ok !
var el = document.getElementById('tonID');
// inclu les padding, border & scrollbar.
console.log(el.offsetHeight);
// inclu les padding.
console.log(el.clientHeight);
Bonjour,
Super, je te remercie , ça fonctionne parfaitement.
Voici mon code après modif :
var el = document.getElementById('tonID');
var style = el.getAttribute('style'); // On récupère l'attribut « style »
el.setAttribute('style', '--hauteur:'+el.clientHeight+'px;'); // On édite l'attribut « style »
Mais par curiosité et pour en apprendre un peu plus, comment peut-on faire pareil avec Jquery ?
<script>
// debut jquery
$(function(){
// pour modifier css de ton élement EL
// hauteur body ou parent -> donne un nombre (sans 'px')
var H = $('body').height();
// ajustement de EL à la même hauteur,
// ou faire un calcul avant
$('#EL').height(H);
});
// fin jquery
</script>
! Non-testé (pas le temps) merci de faire un feed-back
Le message qui suit est une réponse automatique activée par un membre de l'équipe. Les réponses automatiques leur permettent d'éviter d'avoir à répéter de nombreuses fois la même chose ce qui leur fait gagner du temps et leur permet de s'occuper des sujets qui méritent plus d'attention plus facilement. Nous sommes néanmoins ouverts et si vous avez une question ou une remarque, n'hésitez pas à contacter la personne en question par Message Privé. Pour plus d'informations, nous vous invitons à lire les règles générales du forum
Avant de poster, demandez-vous si ce que vous allez dire apporte quelque chose au sujet. Si votre message n'apporte rien, vous ferez perdre du temps à tout le monde et le sujet pourrait dévier ou devenir difficile à suivre.
Aussi, vérifiez la date du topic. Le déterrage de topic nuit au bon fonctionnement du forum et est interdit. Utilisez les boutons pour dire merci. Si le topic date de plus de deux mois sans réponses, mieux vaut ne pas répondre. Si vous avez une question similaire, créez plutôt votre propre sujet en détaillant votre contexte
Pas d'aide concernant le code par MP, le forum est là pour ça :)