Як ви знайдете поточну ширину <div>
крос-браузера сумісним способом, не використовуючи бібліотеку типу jQuery?
Як ви знайдете поточну ширину <div>
крос-браузера сумісним способом, не використовуючи бібліотеку типу jQuery?
Відповіді:
document.getElementById("mydiv").offsetWidth
cientWidth
, ще я не знаю реальної різниці.
offsetWidth
включає ширину кордону, clientWidth
не робить.
display: none
або не є частиною документа, він завжди матиме нульову висоту зміщення.
Ви можете використовувати clientWidth
або offsetWidth
Mozilla для мережі розробників
Це було б так:
document.getElementById("yourDiv").clientWidth; // returns number, like 728
або з шириною бордюрів:
document.getElementById("yourDiv").offsetWidth; // 728 + borders width
Усі відповіді вірні, але я все ж хочу надати деякі інші варіанти, які можуть працювати.
Якщо ви шукаєте призначену ширину (ігнорування прокладки, поля тощо), ви могли б скористатися.
getComputedStyle(element).width; //returns value in px like "727.7px"
getComputedStyle дозволяє отримати доступ до всіх стилів цих елементів. Наприклад: padding, paddingLeft, margin, border-top-left-radius тощо.
Ви також можете шукати DOM за допомогою ClassName. Наприклад:
document.getElementsByClassName("myDiv")
Це поверне масив. Якщо є одна конкретна власність, яка вас цікавить. Наприклад:
var divWidth = document.getElementsByClassName("myDiv")[0].clientWidth;
divWidth
тепер буде дорівнює ширині першого елемента у вашому масиві div.
Іншим варіантом є використання функції getBoundingClientRect. Зверніть увагу, що getBoundingClientRect поверне порожню пряму, якщо дисплей елемента "жоден".
var elem = document.getElementById("myDiv");
if(elem) {
var rect = elem.getBoundingClientRect();
console.log(rect.width);
}
виклик нижче методу на div або body tag onclick = "показати (подія);" показ шоу (подія) {
var x = event.clientX;
var y = event.clientY;
var ele = document.getElementById("tt");
var width = ele.offsetWidth;
var height = ele.offsetHeight;
var half=(width/2);
if(x>half)
{
// alert('right click');
gallery.next();
}
else
{
// alert('left click');
gallery.prev();
}
}
Правильний спосіб отримання обчисленого стилю чекає, поки сторінка не буде виведена. Це можна зробити наступним чином. Зверніть увагу на час очікування на отримання auto
значень.
function getStyleInfo() {
setTimeout(function() {
const style = window.getComputedStyle(document.getElementById('__root__'));
if (style.height == 'auto') {
getStyleInfo();
}
// IF we got here we can do actual business logic staff
console.log(style.height, style.width);
}, 100);
};
window.onload=function() { getStyleInfo(); };
Якщо ви використовуєте просто
window.onload=function() {
var computedStyle = window.getComputedStyle(document.getElementById('__root__'));
}
Ви можете отримати auto
значення ширини та висоти, оскільки браузери не відображаються до повного завантаження.