jQuery如何js获取元素偏移html元素相对浏览器窗口的偏移?

JS和JQUERY获取页面大小,滚动条位置,元素位置(示例代码)
字体:[ ] 类型:转载 时间:
这篇文章主要是对JS和JQUERY获取页面大小,滚动条位置,元素位置的示例代码进行了介绍。需要的朋友可以过来参考下,希望对大家有所帮助
js与jquery获得页面大小、滚动条位置、元素位置
代码如下://页面位置及窗口大小
function GetPageSize() {var scrW, scrH; if(window.innerHeight && window.scrollMaxY) {&&& // Mozilla&&& scrW = window.innerWidth + window.scrollMaxX;&&& scrH = window.innerHeight + window.scrollMaxY; } else if(document.body.scrollHeight & document.body.offsetHeight){&&& // all but IE Mac&&& scrW = document.body.scrollW&&& scrH = document.body.scrollH } else if(document.body) { // IE Mac&&& scrW = document.body.offsetW&&& scrH = document.body.offsetH} var winW, winH; if(window.innerHeight) { // all except IE&&& winW = window.innerW winH = window.innerH } else if (document.documentElement && document.documentElement.clientHeight){&&& // IE 6 Strict Mode&&& winW = document.documentElement.clientW&&&& winH = document.documentElement.clientH } else if (document.body) { // other&&& winW = document.body.clientW&&& winH = document.body.clientH }&&& // for small pages with total size less then the viewport var pageW = (scrW&winW) ? winW : scrW; var pageH = (scrH&winH) ? winH : scrH;&&& return {PageW:pageW, PageH:pageH, WinW:winW, WinH:winH};
//滚动条位置function GetPageScroll() { var x, if(window.pageYOffset) {&&& // all except IE&&& y = window.pageYO&&& x = window.pageXO } else if(document.documentElement && document.documentElement.scrollTop) {&&& // IE 6 Strict&&& y = document.documentElement.scrollT&&& x = document.documentElement.scrollL } else if(document.body) {&&& // all other IE&&& y = document.body.scrollT&&& x = document.body.scrollL&& } return {X:x, Y:y};
获取浏览器显示区域的高度 : $(window).height(); 获取浏览器显示区域的宽度 :$(window).width(); 获取页面的文档高度 :$(document).height(); 获取页面的文档宽度 :$(document).width();
获取滚动条到顶部的垂直高度 :$(document).scrollTop(); 获取滚动条到左边的垂直宽度 :$(document).scrollLeft();
计算元素位置和偏移量 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
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具随笔 - 60&
文章 - 4&评论 - 52&trackbacks - 0
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&javascript &&
窗口位置离屏幕左偏移
var leftPos = (typeof window.screenLeft == "number") ?&window.screenLeft : window.screenX;
浏览器兼容性问题可能不准确,建议用moveTo
窗口位置离屏幕上偏移
var topPos = (typeof window.screenTop == "number") ?&window.screenTop : window.screenY;
浏览器兼容性问题可能不准确,建议用moveTo
窗口定位到某位置
window.moveTo(0,0)
Opera及IE7+默认禁用,且不适用于框架
窗口定位相对位置
window.moveBy(50,50)
Opera及IE7+默认禁用,且不适用于框架
窗口调整大小1
window.resizeTo(100,100)
窗口调用大小2
window.resizeTBy(100,50)
页面视口大小
& & & & var pageWidth = window.innerWidth,&&&&&&&&&&& pageHeight = window.innerH&&&&&&&&&& if (typeof pageWidth != "number"){&&&&&&&&&&& if (patMode == "CSS1Compat"){&&&&&&&&&&&&&&& pageWidth= document.documentElement.clientW&&&&&&&&&&&&&&& pageHeight = document.documentElement.clientH&&&&&&&&&&& } else {&&&&&&&&&&&&&&& pageWidth = document.body.clientW&&&&&&&&&&&&&&& pageHeight = document.body.clientH&&&&&&&&&&& }&&&&&&& }
$(window).width()$(window).height()
元素距页面顶部偏移量
& & & &function getElementTop(element){&&&&&&&&&&& var actualTop = element.offsetT&&&&&&&&&&& var current = element.offsetP&&&&&&&&&&& while (current !== null){&&&&&&&&&&&&&&&&&&&&&&& actualTop += current.offsetT&&&&&&&&&&&&&&& current = current.offsetP&&&&&&&&&&& }&&&&&&&&&&& return actualT&&&&&&& }
$(element).offset().top
js为递归计算,只对可见元素有效
元素距页面左侧偏移量
& & & & function getElementLeft(element){&&&&&&&&&&& var actualLeft = element.offsetL&&&&&&&&&&& var current = element.offsetP&&&&&&&&&&& while (current !== null){&&&&&&&&&&&&&&&&&&&&&&& actualLeft += current.offsetL&&&&&&&&&&&&&&& current = current.offsetP&&&&&&&&&&& }&&&&&&&&&&& return actualL&&&&&&& }
$(element).offset().left
js为递归计算,只对可见元素有效
元素在垂直方向上占用空间(含边框+内边距+滚动条)
element.offsetHeight
$(element).outerHeight(),
元素在水平方向上占用空间(含边框+内边距+滚动条)
element.offsetWidth
$(element).outerWidth(),
元素在垂直方向上占用空间(不含边框,滚动条只含内边距)
element.clientHeight
$(element).height(),有区别,不含内边距
元素在水平方向上占用空间(不含边框,滚动条,只含内边距)
element.clientWidth
$(element).width(),有区别,不含内边距
在没有滚动条时,元素内容总高度
element.scrollHeight
jquery未找到对应方法
var docHeight = Math.max(document.documentElement.scrollHeight,document.documentElement.clientHeight);
在没有滚动条时,元素内容总宽度
element.scrollWidth
jquery未找到对应方法
var docWidth = Math.max(document.documentElement.scrollWidth,document.documentElement.clientWidth);
已被滚动卷去的上方像素
var top = document.body.scrollTop | document.documentElement.scrollT
$(document).scrollTop()
可以用此方法滚动到指定位置
已被滚动卷去的左方像素
var left = document.body.scrollLeft | document.documentElement.scrollL
$(document).scrollLeft()
可以用此方法滚动到指定位置
兼容所有浏览器,
取得元素矩阵,返回
元素左上角坐标距
left,top,right,bottom值
&&&&&&& function getElementLeft(element){&&&&&&&&&&& var actualLeft = element.offsetL&&&&&&&&&&& var current = element.offsetP&&&&&&&&&&& while (current !== null){&&&&&&& &&&&&&&&&&&&&&& actualLeft += current.offsetL&&&&&&&&&&&&&&& current = current.offsetP&&&&&&&&&&& }&&&&&&&&&&& return actualL&&&&&&& }&&& &&&&&&& function getElementTop(element){&&&&&&&&&&& var actualTop = element.offsetT&&&&&&&&&&& var current = element.offsetP&&&&&&&&&&& while (current !== null){&&&&&&& &&&&&&&&&&&&&&& actualTop += current. offsetT&&&&&&&&&&&&&&& current = current.offsetP&&&&&&&&&&& }&&&&&&&&&&& return actualT&&&&&&& }&&& &&& function getBoundingClientRect(element){&&&&&&& var scrollTop = document.documentElement.scrollT&&&&&&& var scrollLeft = document.documentElement.scrollL&&&&&&& if (element.getBoundingClientRect){&&&&&&&&&&& if (typeof arguments.callee.offset != "number"){&&&&&&&&&&&&&&& var temp = document.createElement("div");&&&&&&&&&&&&&&& temp.style.cssText = "position:left:0;top:0;";&&&&&&&&&&&&&&& document.body.appendChild(temp);&&&&&&&&&&&&&&& arguments.callee.offset = -temp.getBoundingClientRect().top - scrollT&&&&&&&&&&&&&&& document.body.removeChild(temp);&&&&&&&&&&&&&&& temp =&&&&&&&&&&& }&&&&&&&&&&& var rect = element.getBoundingClientRect();&&&&&&&&&&& var offset = arguments.callee.&&& &&&&&&&&&&& return {&&&&&&&&&&&&&&& left: rect.left + offset,&&&&&&&&&&&&&&& right: rect.right + offset,&&&&&&&&&&&&&&& top: rect.top + offset,&&&&&&&&&&&&&&& bottom: rect.bottom + offset&&&&&&&&&&& };&&&&&&& } else {&&&&&&&&&&& var actualLeft = getElementLeft(element);&&&&&&&&&&& var actualTop = getElementTop(element);&&&&&&&&&& return {&&&&&&&&&&&&&&& left: actualLeft - scrollLeft,&&&&&&&&&&&&&&& right: actualLeft + element.offsetWidth - scrollLeft,&&&&&&&&&&&&&&& top: actualTop - scrollTop,&&&&&&&&&&&&&&& bottom: actualTop + element.offsetHeight - scrollTop&&&&&&&&&&& }&&&&&&& }&&& }
阅读(...) 评论()本帖子已过去太久远了,不再提供回复功能。}

我要回帖

更多关于 js获取元素偏移 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信