javascript和jquery窗口定位方法对应表

来源:互联网 发布:淘宝手机端倒计时代码 编辑:程序博客网 时间:2024/06/04 08:03

转载 http://www.cnblogs.com/Cohlint/archive/2012/08/29/2661921.html

                                                                  位置

 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+默认禁用,且不适用于框架
窗口调整大小1window.resizeTo(100,100)  窗口调用大小2window.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().topjs为递归计算,只对可见元素有效元素距页面左侧偏移量        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
            }
        }
    }



0 0
原创粉丝点击