美文网首页我爱编程
通过Jquery判断页面元素是否在浏览器的可视区域内

通过Jquery判断页面元素是否在浏览器的可视区域内

作者: PengPengPro | 来源:发表于2017-05-10 21:33 被阅读115次

前端开发中,有时需要判断某个元素是否在浏览器的可视区域内,或者是否已经滚动出了可视区域.首先想到的便是JavaScript操作,原生方法自然可以,不过jQuery已经封装了一些属性,使用起来更方便些,我们这里就讨论这种Jquery的方式.(伸手党可直接看文章屁股 :cool:) 假设此元素为 #item,先说几个关键的属性:

JavaScript1:
jQuery('#item').offset().top

item 的绝对偏移量,指#item的实际尺寸(即不包括外边框margin)的上边界到页面顶端的距离.这个值不随窗口滚动而改变

JavaScript2:
jQuery('#item').outerHeight()

item 的实际尺寸,即 height+padding+border

JavaScript3:jQuery('#item').outerHeight(true)#item的实际尺寸及外边距,即 height+padding+border+margin

JavaScript4:jQuery(window).scrollTop()窗口滚动的顶部偏移量,即此时页面的上边界到可视区域的上边界的偏移量,简单的可以理解成整个页面滚动了多少距离JavaScript1jQuery(window).height()

浏览器窗口可视区域的高度:用脚后跟想想就能想到,在窗口上下滚动的情况下,一个页面元素的状态有3种,1.向上滚动超出可视区域,2.向下滚动超出可视区域,3.在可视区域内.很明显,我们需要的就是1和2两种情况. 情况1: 由于元素随页面向上滚动,所以自然能想到,在页面顶部偏移量不断增加的过程中,边界是从上至下经过一段距离,而这个距离的区域恰好就是元素本身的偏移量加上元素本身的高度,所以当

JavaScript1:
jQuery(window).scrollTop()>(jQuery('#item').offset().top+jQuery('#item').outerHeight())这个表达式结果为true时,表示元素已经向上滚动,并超出了可视区域.情况2: 与情况1相反,向下滚动的过程,页面顶部的偏移量是在不断减少中,所以当它小于元素偏移量与可视区域高度的差值的时候,元素则向下并超出了可视区域,即

JavaScript2:jQuery(window).scrollTop()<</span>(jQuery('#item').offset().top-jQuery(window).height())那么结论就是将这两种情况作或运算即可达到目的.以下表达式结果如果为true,则 #item 不在可视区域内.反之则在可视区域内.

JavaScript3:(jQuery(window).scrollTop()>(jQuery('#item').offset().top+jQuery('#item').outerHeight()))||((jQuery(window).scroll

--

JQuery监听页面滚动总结

1、当前滚动的地方的窗口顶端到整个页面顶端的距离:

    var winPos = $(window).scrollTop();

2、获取指定元素的页面位置:

    $(val).offset().top;

3、对页面滚动条滚动的监听:要放在页面加载的时候

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



});

4、设置滚动条到指定位置。$(window).scrollTop(offset)。

相关文章

网友评论

    本文标题:通过Jquery判断页面元素是否在浏览器的可视区域内

    本文链接:https://www.haomeiwen.com/subject/wzigtxtx.html