У меня есть элемент, и мне нужна его ширина без (!) Вертикальной полосы прокрутки.
Firebug сообщает, что ширина тела составляет 1280 пикселей.
Любой из них отлично работает в Firefox:
console.log($('.element').outerWidth() );
console.log($('.element').outerWidth(true) );
$detour = $('.child-of-element').offsetParent();
console.log( $detour.innerWidth() );
Все они возвращают 1263 пикселей , и это значение, которое я ищу.
Однако все остальные браузеры дают мне 1280 пикселей .
Есть ли кроссбраузерный способ получить полноэкранную ширину без (!) Вертикальной полосы прокрутки?
jquery
cross-browser
width
частый
источник
источник
width: 100%;
Ответы:
.prop("clientWidth")
и.prop("scrollWidth")
в JavaScript :
PS: обратите внимание, что для
scrollWidth
надежного использования ваш элемент не должен выходить за границы горизонтали.jsBin демонстрация
Вы также можете использовать,
.innerWidth()
но это будет работать только сbody
элементомисточник
body
переполнены ли ваши переполнения или нет. если он переполняется, то ограничивайте его.Вы можете использовать ванильный javascript, просто написав:
Вы также можете использовать это, чтобы получить ширину документа следующим образом:
Источник: MDN
Вы также можете получить ширину всего окна, включая полосу прокрутки, следующим образом:
Однако это поддерживается не всеми браузерами, поэтому в качестве альтернативы вы можете использовать,
docWidth
как указано выше, и добавить ширину полосы прокрутки .Источник: MDN
источник
document.documentElement.clientWidth
помогло мне больше всего, потому что он работает и для высоты (innerHeight
может быть меньше, если тело не заполняет страницу и т. д.) и получает значение без полосы прокрутки.Вот несколько примеров, предполагающих
$element
наличиеjQuery
элемента:источник
Попробуй это :
Вы можете получить ширину экрана с полосой прокрутки и без нее, используя этот код. Здесь я изменил значение переполнения
body
и получил ширину с полосой прокрутки и без нее.источник
Самым безопасным местом для получения правильной ширины и высоты без полос прокрутки является элемент HTML. Попробуй это:
Поддержка браузеров довольно приличная, с поддержкой IE 9 и выше. Для СТАРОГО IE используйте один из многих резервных вариантов, упомянутых здесь.
источник
У меня возникла аналогичная проблема, и я
width:100%;
решил ее для себя. Я пришел к этому решению после того, как попробовал ответить на этот вопрос и понял, что сама природа an<iframe>
сделает эти инструменты измерения javascript неточными без использования какой-либо сложной функции. Выполнение 100% - это простой способ позаботиться об этом в iframe. Я не знаю о вашей проблеме, поскольку не уверен, какими элементами HTML вы манипулируете.источник
Ни одно из этих решений у меня не сработало, однако я смог исправить это, взяв ширину и вычтя ширину полосы прокрутки . Я не уверен, насколько это кроссбраузерно.
источник
Вот что я использую
источник