Javascript определяет, соответствуют ли элементы html экрану

#javascript #html

#javascript #HTML

Вопрос:

Есть ли способ использовать javascript для определения того, не может ли содержимое html поместиться на экране (прокручивается), чтобы показывать кнопку «вернуться к началу» только при необходимости?

Ответ №1:

Если вы с удовольствием используете jQuery, вы можете попробовать найти высоту окна и сравнить ее с высотой элемента оболочки. Если высота элемента больше, покажите кнопку.

 var x = $(window).height();
if ($('#test').height() > x) {
  alert('scrollable');
  //add in button here
}  
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="test" style="height:2000px;background:silver"></div>  

Ответ №2:

Трудно сказать, но, возможно, вы могли бы использовать элемент document.getElementById() , а затем использовать innerHeight (http://www.w3schools.com/jsref/prop_win_innerheight.asp ), чтобы определить, превышает ли элемент высоту.

Редактировать — похоже, я, возможно, немного неправильно понял. Если вы хотите проверить все содержимое HTML на странице, вы можете использовать что-то вроде scrollHeight (https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollHeight ) вкл document .

Ответ №3:

Вы можете сравнить высоту страницы с высотой вашего браузера:

 document.body.offsetHeight < screen.availHeight
  

Это вернет true, если страница подходит. Хотя для вашей цели, почему бы просто не показать кнопку, если пользователь вообще прокручивается вниз? Предполагая, что вы можете использовать jQuery,

 $(window).scroll(function(){
    if ($(document.body).scrollTop() > 0)
    {
        //Add or show button here
    }
})
  

Ответ №4:

Он не поддерживается IE, но мой любимый ванильный javascript всегда:

 var scrollHeight = window.scrollY;
console.log(scrollHeight);