js/jq宽高的理解与运用

document:
1. 与client相关的宽高
document.body.clientWidth
document.body.clientHeight
document.body.clientLeft
document.body.clientTop

2. 与offset相关的宽高

3. 与scroll相关的宽高

网页滚动到顶部或底部:

<!DOCTYPE html>
<html lang="zh-cn">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <br /><br /><br /><br /><br /><br />
    <br /><br /><br /><br /><br /><br />
    <br /><br /><br /><br /><br /><br />
    <br /><br /><br /><br /><br /><br />
    <br /><br /><br /><br /><br /><br />
    <br /><br /><br /><br /><br /><br />
    <br /><br /><br /><br /><br /><br />
    <br /><br /><br /><br /><br /><br />
    <p>123</p><p>123</p><p>123</p><p>123</p><p>123</p><p>123</p>
    <p>123</p><p>123</p><p>123</p><p>123</p><p>123</p><p>123</p>
    <p>123</p><p>123</p><p>123</p><p>123</p><p>123</p><p>123</p>
    <p>123</p><p>123</p><p>123</p><p>123</p><p>123</p><p>123</p>
    <p>123</p><p>123</p><p>123</p><p>123</p><p>123</p><p>123</p>
    <p>123</p><p>123</p><p>123</p><p>123</p><p>123</p><p>123</p>
    
<script>
function scrollBottomOrTop() {
    var clients = window.innerHeight || document.documentElement.clientHeight
    || document.body.clientHeight;
    var scrollTop = document.body.scrollTop;
    var wholeHeight = document.body.scrollHeight;
    if(clients+scrollTop>=wholeHeight){
        alert('我已经滚动到了底部');
    }
    if(scrollTop == 0) {
        alert('我已经滚动到顶部了');
    }
}
window.onscroll = scrollBottomOrTop;
</script>
    
</body>
</html>

div滚动到底部加载

http://jsbin.com/fafexeqifi/edit?html,output

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>JS Bin</title>
  <style>
    .scrolldiv {
      width: 500px;
      height: 400px;
      margin: 10px auto;
      background-color: #FF0000;
      overflow-y: scroll;
      padding: 10px;
    }
  </style>
</head>
<body>
  <div class="scrolldiv" id="testDiv">
    <br><br><br><br><br><br><br><br><br><br><br>
    <br><br><br><br><br><br><br><br><br><br><br>
    <br><br><br><br><br><br><br><br><br><br><br>
    <br><br><br><br><br><br><br><br><br><br><br>
    <br><br><br><br><br><br><br><br><br><br><br>
    <br><br><br><br><br><br><br><br><br><br><br>
  </div>
  
  <script>
    
    var divscroll = document.getElementById('testDiv');
    function divScroll() {
      var wholeHeight = divscroll.scrollHeight;
      var scrollTop = divscroll.scrollTop;
      var divHeight = divscroll.clientHeight;
      
      if(scrollTop+divHeight>=wholeHeight) {
        alert('div滚动到底部了');
      }
      if(scrollTop == 0) {
        alert('滚动到头部了');
      }
    }
    
    divscroll.onscroll = divScroll;
  </script>

</body>
</html>

计算滚动轴的宽度1

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>获取滚动轴的宽度</title>
</head>
<body>
  
  <script>
      function getScrollBarWidth() {
          var el = document.createElement('p'),
          styles = {
               '100px',
              height: '100px',
              overflowY: 'scroll'
          },i,scrollBarWidth;
          
          for(i in styles) {
              el.style[i] = styles[i];
          }
          document.body.appendChild(el);
          scrollBarWidth = el.offsetWidth - el.clientWidth;
          el.remove();
          return scrollBarWidth;
      }
      
      console.log(getScrollBarWidth());
  </script>

</body>
</html>

 

计算滚动轴的宽度2

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>获取滚动轴的宽度</title>
</head>
<body>
  
  <script>
      function getScrollBarWidth() {
          var el = document.createElement('p'),
          styles = {
               '100px',
              height: '100px'
          }, i, clientWidth1, clientWidth2, scrollBarWidth;
          
          for(i in styles) {
              el.style[i] = styles[i];
          }
          
          document.body.appendChild(el);
          
          clientWidth1 = el.clientWidth;
          el.style.overflowY = 'scroll';
          clientWidth2 = el.clientWidth;
          
          scrollBarWidth = clientWidth1 - clientWidth2;
          el.remove();
          return scrollBarWidth;
      }
      
      console.log(getScrollBarWidth());
  </script>

</body>
</html>

jquery滚动到底部和头部加载

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
<script src="https://code.jquery.com/jquery-3.1.0.js"></script>
  <title>jquery滚动到底部和头部加载</title>
</head>
<body>
  
<div style="height: 3000px;100%"></div>  
<script>
$(window).scroll(function () {
  var ks_area = $(window).height();
  var wholeHeight = $(document).height();
  var scrolltop = $(window).scrollTop();
  
  if(ks_area+scrolltop >= wholeHeight) {
    alert('滚动到底部了');
  }
  
  if(scrolltop == 0) {
    alert('滚动到头部了');
  }
})
</script>
  
  
  
  
  

</body>
</html>

http://jsbin.com/xemafiveti/edit?html,output

原文地址:https://www.cnblogs.com/lqcdsns/p/6009797.html