Jquery怎么获取元素文档大小、偏移、位置和滚动条位置

时间:2021-10-25 10:27:11
因为浏览器的兼容问题,如果使用javascript获取这些数值是一个相当痛苦的过程。好在jqeury提供了简单优雅,并且兼容的解决方法。
1.获取浏览器和页面文档的宽度和高度
//获取浏览器显示区域的高度
$(window).height();
//获取浏览器显示区域的宽度
$(window).width();

//获取页面文档的高度
$(document.body).height();
//获取页面文档的宽度
$(document.body).width();

2.获取滚动条的位置
//获取滚动条到顶部的垂直高度
$(document).scrollTop();
//获取滚动条到左边的垂直高度
$(document).scrollLeft();

3.计算位置和偏移量
offset()方法返回或设置元素相对于文档的偏移(位置)。
使用方法:
1〉返回偏移坐标
$(selector).offset();----该方法返回的对象包含两个整形属性:top和left,以像素计算。此方法对可见元素有效。
2〉设置偏移坐标
$(selector).offset(value);----value必须规定以像素计的top和left坐标。可能的值:a,值对,比如{top:100,left:0};b,带有top和left属性的对象。

实例:
            $(":button:first").click(function () {
                var oldOffset = $(this).offset();
                var newOffset = new Object();
                newOffset.left = oldOffset.left + 20;
                newOffset.top = oldOffset.top + 20;
                $(this).offset(newOffset);
                return false;
            });


------注明,以下内容没有验证成功,不能作为参考
offset方法是一个很有用的方法,它返回包装集中第一个元素的偏移信息。默认情况下是相对body的偏移信息。结果包含top和left两个属性。
offset(options,results)
options.relativeTo  -----指定相对计算偏移位置的祖先元素。这个元素应该是relative或absolute定位。省略则相对body
options.scroll          -----是否把滚动条计算在内,默认True
options.padding     --------是否把padding计算在内,默认false
options.margin       -------是否把margin计算在内,默认为true
options.border       -------是否把边框计算在内,默认为true