jQueryを使用せずにdivの高さを取得する方法に関するアイデアはありますか?
Stack Overflowでこの質問を検索していましたが、すべての回答がjQueryを指しているよう.height()
です。
のようなものを試しましmyDiv.style.height
たが、divにCSSが設定されていwidth
ても、何も返されませんでした。height
jQueryを使用せずにdivの高さを取得する方法に関するアイデアはありますか?
Stack Overflowでこの質問を検索していましたが、すべての回答がjQueryを指しているよう.height()
です。
のようなものを試しましmyDiv.style.height
たが、divにCSSが設定されていwidth
ても、何も返されませんでした。height
var clientHeight = document.getElementById('myDiv').clientHeight;
また
var offsetHeight = document.getElementById('myDiv').offsetHeight;
clientHeight
パディングが含まれます。
offsetHeight
パディング、スクロールバー、境界線が含まれます。
もう1つのオプションは、getBoundingClientRect関数を使用することです。要素の表示が「none」の場合、getBoundingClientRectは空のrectを返すことに注意してください。
例:
var elem = document.getElementById("myDiv");
if(elem) {
var rect = elem.getBoundingClientRect();
console.log("height: " + rect.height);
}
更新:2020年に書かれた同じコードは次のとおりです。
const elem = document.querySelector("#myDiv");
if(elem) {
const rect = elem.getBoundingClientRect();
console.log(`height: ${rect.height}`);
}
var element = document.getElementById('element');
alert(element.offsetHeight);
var myDiv = document.getElementById('myDiv'); //get #myDiv
alert(myDiv.clientHeight);
clientHeightとclientWidthはあなたが探しているものです。
offsetHeightとoffsetWidthも高さと幅を返しますが、境界線とスクロールバーが含まれます。状況に応じて、どちらか一方を使用できます。
お役に立てれば。
他の答えは私のために働いていませんでした。におよび/またはセットがあると仮定して、 w3schoolsで見つけたものは次のとおりです。div
height
width
必要なのはheight
、width
パディングを除外することだけです。
var height = document.getElementById('myDiv').style.height;
var width = document.getElementById('myDiv').style.width;
あなたの反対票:私が受け取った賛成票から判断すると、この回答は少なくとも5人を助けました。気に入らない場合は、修正できるように理由を教えてください。それは、反対票を投じた私の最大のペットピーブです。なぜあなたがそれを否定するのか私に言うことはめったにありません。
el.clientHeight
およびに加えて、要素内のコンテンツel.offsetHeight
の高さが必要な場合(要素自体に設定されている高さに関係なく)、を使用できます。より詳しい情報el.scrollHeight
これは、要素の高さまたは最大高さを内部の動的コンテンツの正確な高さに設定する場合に役立ちます。例えば:
var el = document.getElementById('myDiv')
el.style.maxHeight = el.scrollHeight+'px'
試す
myDiv.offsetHeight
console.log("Height:", myDiv.offsetHeight );
#myDiv { width: 100px; height: 666px; background: red}
<div id="myDiv"></div>
もう1つの選択肢があります:
var classElements = document.getElementsByClassName("className");
function setClassHeight (classElements, desiredHeightValue)
{
var arrayElements = Object.entries(classElements);
for(var i = 0; i< arrayElements.length; i++) {
arrayElements[i][1].style.height = desiredHeightValue;
}
}
1つのオプションは
const styleElement = getComputedStyle(document.getElementById("myDiv"));
console.log(styleElement.height);
<div id="item">show taille height</div>
<script>
alert(document.getElementById('item').offsetHeight);
</script>
最善の方法は-
var myDiv = document.getElementById('myDiv');
var myDivWidth = myDiv.clientWidth || myDiv.offsetWidth || (myDiv.getBoundingClientRect()).width;
var myDivHeight= myDiv.clientHeight || myDiv.offsetHeight || (myDiv.getBoundingClientRect()).height;
console.log("Width: "+ myDivWidth + "px");
console.log("Height: "+ myDivHeight + "px");
<div style="padding: 50px; margin: 8px auto; outline: 1px solid green;">
<div id="myDiv" style="width: 100%; height: 256px; padding: 50px; margin: 4px; background: #000000; color: #ffffff; outline: 1px solid red;">
This is "#myDiv" <br>
Width: 100% <br>
Height: 256px
</div>
</div>
javascriptの高さの計算
パディングを含む
使用するclientHeight
element.clientHeight
使用するoffsetHeight
パディング、ボーダー、border_widthを含む
element.offsetHeight
使用するel.style.height
指定された高さのみを返します(手動の高さである必要があります。例:<div style="height:12px"></div>
それ以外の場合は空の結果を返します
element.style.height
使用するgetBoundingClientRect
パディング、ボーダー、ボーダー幅を含む
elem.getBoundingClientRect();
elem.height