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

时间:2024-12-22 15:07:19

jq

获取浏览器显示区域(可视区域)的高度 :
$(window).height();
获取浏览器显示区域(可视区域)的宽度 :
$(window).width();
获取页面的文档高度
$(document).height();
获取页面的文档宽度 :
$(document).width();
浏览器当前窗口文档body的高度:
$(document.body).height();
浏览器当前窗口文档body的宽度:
$(document.body).width();
获取滚动条到顶部的垂直高度 (即网页被卷上去的高度)
$(document).scrollTop();
获取滚动条到左边的垂直宽度 :
$(document).scrollLeft();
获取或设置元素的宽度:
$(obj).width();
获取或设置元素的高度:
$(obj).height();
某个元素的上边界到body最顶部的距离:obj.offset().top;(在元素的包含元素不含滚动条的情况下)
某个元素的左边界到body最左边的距离:obj.offset().left;(在元素的包含元素不含滚动条的情况下)
返回当前元素的上边界到它的包含元素的上边界的偏移量:obj.offset().top(在元素的包含元素含滚动条的情况下)
返回当前元素的左边界到它的包含元素的左边界的偏移量:obj.offset().left(在元素的包含元素含滚动条的情况下)

js:

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

document.documentElement.scrollTop //firefox

document.documentElement.scrollLeft //firefox

document.body.scrollTop //IE

document.body.scrollLeft //IE

等同于:

$(window).scrollTop()

$(window).scrollLeft()

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

document.documentElement.clientHeight// IE firefox  

等同于:

$(window).height()

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

 obj.offsetTop //IE firefox

 obj.offsetLeft //IE firefox

等同于:

obj.offset().top

 obj.offset().left

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

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

<!DOCTYPE html>
<html> <head>
<meta charset="UTF-8">
<title>监控元素出现在视图中</title>
<script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
<style>
p {
height: 30px;
line-height: 30px;
background: #f3f3f3;
opacity: ;
}
</style>
</head> <body>
<div class="main">
<p>你好,china!</p>
<p>你好,china!</p>
<p>你好,china!</p>
<p>你好,china!</p>
<p>你好,china!</p>
<p>你好,china!</p>
<p>你好,china!</p>
<p>你好,china!</p>
<p>你好,china!</p>
<p>你好,china!</p>
<p>你好,china!</p>
<p>你好,china!</p>
<p>你好,china!</p>
<p>你好,china!</p>
<p>你好,china!</p>
<p>你好,china!</p>
<p>你好,china!</p>
<p>你好,china!</p>
<p>你好,china!</p>
<p>你好,china!</p>
<p>你好,china!</p>
<p>你好,china!</p>
</div>
</body>
<script>
function Show() {
var Height = $(window).height();
$('p').not('.none').each(function(ind) {
var Top = $(this).offset().top; //元素距离顶部距离
var scroll = $(document).scrollTop(); //滚动高度
console.log(Top + ' ' + scroll);
if(Top - Height - scroll <= ) {
setTimeout(function() {
$('p').not('.none').eq(ind).addClass('show').css('background', 'red').animate({
opacity:
}, );
}, );
}
});
}
$(function() {
var Height = $(window).height(); //窗口高度
console.log('可视高度:' + Height);
$('.main').find('*').each(function() {
var Top = $(this).offset().top;
if(Top - Height <= ) {
$(this).addClass('none').css({
'background': '#09f',
'opacity':
});
}
});
$(window).scroll(function() {
Show();
})
})
</script> </html>