私には2つの質問があります。 より重要なのは、divの幅を測定する方法です。 CSS値を取得するのではなく、pxまたはemsなどで取得します。 は今のところ私はこのdivの幅をJavascriptで測定する
document.getElementById("menu").addEventListener("click", GetWidth);
function GetWidth() {
var ulObject=document.querySelector(".dropdown-menu");
var obtainedStyle=window.getComputedStyle(ulObject);
var ulWidth=obtainedStyle.getPropertyValue("width");
console.log(ulWidth);
}
それがポイントに働くようにそれをやっています。問題は、幅のプロパティがautoに設定されているが、変更される可能性があることです。どのように使用可能な価値を得るには?
2番目の質問は、クラスを使用してイベントハンドラを作成する方法です。 querySelectorおよびgetElementByClassNameが機能しませんでした。
私はむしろjQueryを避けたいと思いますが、それが唯一の選択肢なら、私はそれを取るでしょう。 How do I retrieve an HTML element's actual width and height?で指定された回答は機能しません。私には表示がありません:none; offsetWidthはまだ0
を使用することができます。https([getBoundingClientRect()]を見てください:しかし、IE8以下ではwidthとheightが返されません – haxxxton
私はあなたが 'offsetsetWidth'を探していると信じています:// https://developer.php/Element/getBoundingClientRect msdn.microsoft.com/en-us/library/ms534304(v=vs.85).aspx –
複数のクエリーを要求しない同時に切開する。最初の質問については、['getBoundingClientRect'](http://stackoverflow.com/questions/294250/how-do-i-retrieve-an-html-elements-actual-width-and-height)を試してください。 2つ目は 'getElementByClassName'は存在しません。実際の' getElementsByClassName'は単一の要素ではなく 'HTMLCollection'を返します。 'querySelector'はうまくいくはずですが、コードを表示していません。 – Xufox