js获取元素的滚动高度,和距离顶部的高度

 
  1. 获取浏览器显示区域(可视区域)的高度 :

  2. $(window).height();

  3. 获取浏览器显示区域(可视区域)的宽度 :

  4. $(window).width();

  5. 获取页面的文档高度

  6. $(document).height();

  7. 获取页面的文档宽度 :

  8. $(document).width();

  9. 浏览器当前窗口文档body的高度:

  10. $(document.body).height();

  11. 浏览器当前窗口文档body的宽度:

  12. $(document.body).width();

  13. 获取滚动条到顶部的垂直高度 (即网页被卷上去的高度)

  14. $(document).scrollTop();

  15. 获取滚动条到左边的垂直宽度 :

  16. $(document).scrollLeft();

  17. 获取或设置元素的宽度:

  18. $(obj).width();

  19. 获取或设置元素的高度:

  20. $(obj).height();

  21. 某个元素的上边界到body最顶部的距离:obj.offset().top;(在元素的包含元素不含滚动条的情况下)

  22. 某个元素的左边界到body最左边的距离:obj.offset().left;(在元素的包含元素不含滚动条的情况下)

  23. 返回当前元素的上边界到它的包含元素的上边界的偏移量:obj.offset().top(在元素的包含元素含滚动条的情况下)

  24. 返回当前元素的左边界到它的包含元素的左边界的偏移量:obj.offset().left(在元素的包含元素含滚动条的情况下)

js:

 网页被卷起来的高度/宽度(即浏览器滚动条滚动后隐藏的页面内容高度)

 
  1. document.documentElement.scrollTop //firefox

  2.  
  3. document.documentElement.scrollLeft //firefox

  4.  
  5. document.body.scrollTop //IE

  6.  
  7. document.body.scrollLeft //IE

等同于:

$(window).scrollTop() 

$(window).scrollLeft()

 网页工作区域的高度和宽度  

document.documentElement.clientHeight// IE firefox  

等同于:

$(window).height()

 元素距离文档顶端和左边的偏移值  

 
  1. obj.offsetTop //IE firefox

  2.  
  3. obj.offsetLeft //IE firefox

等同于:

 obj.offset().top

 obj.offset().left

 

简单实例(监控元素在可见视图中)

  效果:当元素出现在可见区域时,改变其css样式(背景色变红);

 
  1. <!DOCTYPE html>

  2. <html>

  3.  
  4. <head>

  5. <meta charset="UTF-8">

  6. <title>监控元素出现在视图中</title>

  7. <script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>

  8. <style>

  9. p {

  10. height: 30px;

  11. line-height: 30px;

  12. background: #f3f3f3;

  13. opacity: 0;

  14. }

  15. </style>

  16. </head>

  17.  
  18. <body>

  19. <div class="main">

  20. <p>你好,china!</p>

  21. <p>你好,china!</p>

  22. <p>你好,china!</p>

  23. <p>你好,china!</p>

  24. <p>你好,china!</p>

  25. <p>你好,china!</p>

  26. <p>你好,china!</p>

  27. <p>你好,china!</p>

  28. <p>你好,china!</p>

  29. <p>你好,china!</p>

  30. <p>你好,china!</p>

  31. <p>你好,china!</p>

  32. <p>你好,china!</p>

  33. <p>你好,china!</p>

  34. <p>你好,china!</p>

  35. <p>你好,china!</p>

  36. <p>你好,china!</p>

  37. <p>你好,china!</p>

  38. <p>你好,china!</p>

  39. <p>你好,china!</p>

  40. <p>你好,china!</p>

  41. <p>你好,china!</p>

  42. </div>

  43. </body>

  44. <script>

  45. function Show() {

  46. var Height = $(window).height();

  47. $('p').not('.none').each(function(ind) {

  48. var Top = $(this).offset().top; //元素距离顶部距离

  49. var scroll = $(document).scrollTop(); //滚动高度

  50. console.log(Top + ' ' + scroll);

  51. if(Top - Height - scroll <= 0) {

  52. setTimeout(function() {

  53. $('p').not('.none').eq(ind).addClass('show').css('background', 'red').animate({

  54. opacity: 1

  55. }, 500);

  56. }, 200);

  57. }

  58. });

  59. }

  60. $(function() {

  61. var Height = $(window).height(); //窗口高度

  62. console.log('可视高度:' + Height);

  63. $('.main').find('*').each(function() {

  64. var Top = $(this).offset().top;

  65. if(Top - Height <= 0) {

  66. $(this).addClass('none').css({

  67. 'background': '#09f',

  68. 'opacity': 1

  69. });

  70. }

  71. });

  72. $(window).scroll(function() {

  73. Show();

  74. })

  75. })

  76. </script>

  77.  
  78. </html>

 

 

 
  1. 懒加载实现

  2.  
  3. 原理是将非首屏的图片src设为一个默认值,然后监听窗口滚动,当图片出现在视窗中时再给他赋予真实的图片地址,这样可以保证首屏的加载速度然后按需加载图片。

  4.  
  5. 首先在渲染时,图片引用默认图片,然后把真实地址放在data-*属性上面。

  6. <image src='./../assets/default.png' :data-src='item.allPics' class='lazyloadimg'>

  7.  
  8. var bodyScrollHeight = document.body.scrollTop || document.documentElement.scrollTop;// body滚动高度

  9. var windowHeight = window.innerHeight;// 视窗高度

  10. var imgs = document.getElementsByClassName('lazyloadimg');

  11. for (var i =0; i < imgs.length; i++) {

  12. var imgHeight = imgs[i].offsetTop;// 图片距离顶部高度

  13. if (imgHeight < windowHeight + bodyScrollHeight) {

  14. imgs[i].src = imgs[i].getAttribute('data-src');

  15. img[i].className = img[i].className.replace('lazyloadimg','')

  16. }

  17. }

  18. }

  19.  
  20.  
  21. 最后再补充两个常见的滚动判断:

  22. 1.页面滚动离开首屏(这时可显示回到顶部的按钮):document.body.scrollTop > window.innerHeight

  23. 2.页面滚动到底部了(这时可去调接口获取更多内容):window.scrollY + window.innerHeight > document.body.offsetHeight

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值