位置

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
            }
        }
    }

原生JS和JQ窗口定位属性对照表的更多相关文章

  1. JS(原生js和jq方式)获取元素属性(自定义属性),删除属性(自定义属性)

    JS(原生js和jq方式)获取元素属性(自定义属性),删除属性(自定义属性) 以下内容: 一.获取元素的属性 二.设置元素的属性 三.删除元素的属性 一.获取元素的属性 1-原生JS 获取属性 .ge ...

  2. 原生JS与JQ获取元素的区别

    刚学JQ不久,有时候可能会把JS和JQ获取元素的方式搞错,接下来获取属性方法什么的就一发不可收拾了,现在把两者获取获取元素的代码整理下. 一.原生JS获取元素. 1.常用的三种方式获取元素对象(将指定 ...

  3. 原生JS 和 JQ 获取滚动条的高度,以及距离顶部的高度

    JQ:相对比较简便 获取浏览器显示区域(可视区域)的高度 : $(window).height(); 获取浏览器显示区域(可视区域)的宽度 : $(window).width(); 获取页面的文档高度 ...

  4. 原生JS实现页面内定位

    需求:点击跳转到页面指定位置 <div id="test">点击跳转到此处</div> [法一]: 利用a标签的锚点跳转 <a href=" ...

  5. 网页换肤:原生js与jq

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. 原生JS给元素添加class属性

     有下面这三种简单语句. document.getElementsByTagName('body')[0].className = 'snow-container'; //设置为新的 document ...

  7. 原生js删除增加修改class属性

    其实html5已经扩展了class操作的相关API,其中classList属性就以及实现了class的增删和判断. HTML DOM classList 属性 classList属性的方法有: add ...

  8. 原生js模仿jq fadeIn fadeOut效果 兼容IE低版本

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  9. 怎么通过原生JS改变元素的class属性

    解决方法:document.getElementById('test').className = 'emphasis' Eg: <!doctype html> <html lang= ...

随机推荐

  1. Samba共享目录的多用户权限设置案例

    下面根据实际工作中遇到的一个共享目录的多用户权限需求案例来说明下Samba用户权限的设置. 一.需求场景领导:李一(liyi)正式员工(zhengshiyuangong):刘二二(liuerer).于 ...

  2. Visual Studio2015安装过程以及单元测试

    安装环境: 安装版本: Visual Studio2015 安装过程: 因为我是在第一次老师安排的作业的时候感觉VC++6.0不如VS方便所以才装的Visual Studio2015,又安装了点插件, ...

  3. 《Linux内核分析》实践2

    <Linux及安全>实践2 一.Linux基本内核模块 1.1什么是内核模块 linux模块是一些可以作为独立程序来编译的函数和数据类型的集合.之所以提供模块机制,是因为Linux本身是一 ...

  4. zookeeper安装(Linux)

    安装环境: Linux:centos6.4 Jdk:1.7以上版本 Zookeeper是java开发的可以运行在windows.linux环境.需要先安装jdk. 安装步骤: 第一步:安装jdk 第二 ...

  5. maven配置私服

    1先配置maven的配置文件 2在项目的pom.xml文件增加 <distributionManagement> <repository> <id>nexus-re ...

  6. spring 注入DI

    web  项目的搭建  以注入对象的方式

  7. shell脚本--shift参数左移

    参数左移什么意思呢?这个参数指的是在运行脚本时,跟在脚本名后面的参数,前面已经讲过,可以使用$#来获取参数的个数,使用$*来获取所有的参数,而参数左移的含义是这样的:有个指针指向参数列表第一个参数,左 ...

  8. PHP利用GD库处理图片方法实现

    这里写的是完成每个功能的函数,可以复制单个函数直接使用,这里的每个函数都是另外一篇PHP常用类------图片处理类Image当中的方法进行细化,可以参考一下 废话不多说,直接付代码吧! 添加水印(文 ...

  9. [转帖] infiniband的协议速度

  10. Qt__主窗口、菜单和工具条(QMainWindow,QMenu,QToolBar)

    转自豆子空间 主窗口 Qt的GUI程序有一个常用的顶层窗口,叫做MainWindow.MainWindow继承自QMainWindow.QMainWindow窗口分成几个主要的区域: 最上面是Wind ...