|
位置
|
javascript
|
jquery
|
兼容性
|
|
窗口位置离屏幕左偏移
|
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.innerHeight; if (typeof pageWidth != "number"){ if (document.compatMode == "CSS1Compat"){ pageWidth= document.documentElement.clientWidth; pageHeight = document.documentElement.clientHeight; } else { pageWidth = document.body.clientWidth; pageHeight = document.body.clientHeight; } }
|
$(window).width()
$(window).height()
|
|
|
元素距页面顶部偏移量
|
function getElementTop(element){ var actualTop = element.offsetTop; var current = element.offsetParent; while (current !== null){ actualTop += current.offsetTop; current = current.offsetParent; } return actualTop; }
|
$(element).offset().top
|
js为递归计算,只对可见元素有效
|
|
元素距页面左侧偏移量
|
function getElementLeft(element){ var actualLeft = element.offsetLeft; var current = element.offsetParent; while (current !== null){ actualLeft += current.offsetLeft; current = current.offsetParent; } return actualLeft; }
|
$(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.scrollTop;
|
$(document).scrollTop()
|
可以用此方法滚动到指定位置
|
|
已被滚动卷去的左方像素
|
var left = document.body.scrollLeft | document.documentElement.scrollLeft;
|
$(document).scrollLeft()
|
可以用此方法滚动到指定位置
|
|
兼容所有浏览器,
取得元素矩阵,返回
元素左上角坐标距
视窗口的
left,top,right,bottom值
|
function getElementLeft(element){ var actualLeft = element.offsetLeft; var current = element.offsetParent; while (current !== null){ actualLeft += current.offsetLeft; current = current.offsetParent; } return actualLeft; } function getElementTop(element){ var actualTop = element.offsetTop; var current = element.offsetParent; while (current !== null){ actualTop += current. offsetTop; current = current.offsetParent; } return actualTop; } function getBoundingClientRect(element){ var scrollTop = document.documentElement.scrollTop; var scrollLeft = document.documentElement.scrollLeft; if (element.getBoundingClientRect){ if (typeof arguments.callee.offset != "number"){ var temp = document.createElement("div"); temp.style.cssText = "position:absolute;left:0;top:0;"; document.body.appendChild(temp); arguments.callee.offset = -temp.getBoundingClientRect().top - scrollTop; document.body.removeChild(temp); temp = null; } var rect = element.getBoundingClientRect(); var offset = arguments.callee.offset; 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 } } }
|