位置

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. sixsix团队“餐站”应用代码规范及开发文档

    网络爬虫文档 以下是我们软工小组关于网络爬虫部分代码的的说明文档.至于一些分功能的小函数或方法就不在此赘述,一看就能明白.下面就主要的函数进行说明. 从总体上来说主要有三部分:店家信息爬取部分,菜品信 ...

  2. 12.9 Daily Scrum

    在一些实现上,开发人员提出了意见,经过讨论后,我们决定取消“推荐餐厅”的功能,增加了“菜谱分类”的功能. 同时更新了相关人员的任务.   Today's Task Tomorrow's Task 丁辛 ...

  3. 【Beta阶段】第十次Scrum Meeting!!!

    每日任务内容: 本次会议为第十次Scrum Meeting会议~ 本次会议为团队Beta阶段的最后一次会议!! 队员 今日完成任务 刘乾 #136(完成一半,今晨发布) 团队博客撰写 https:// ...

  4. 实验二 合作:王宏财 http://www.cnblogs.com/wanghongcai/

    package 四则运算; import javax.swing.JFrame; import javax.swing.JButton; import javax.swing.JOptionPane; ...

  5. Apache的Thrift引发的编译思考

    最近偶然看到了Apache的Thrift,感觉有点像Corba架构后的变种(赞一个,Facebook真伟大).WSDL能生成C#和Java的(SOAP标准接口,做WebService都用过).Corb ...

  6. js获取属性

    js获取属性的方法: document.getElementById(); document.getElementsByTagname(); document.getElementsByClassna ...

  7. Linux:cut命令详解

    cut 文件内容查看 显示行中的指定部分,删除文件中指定字段 显示文件的内容,类似于下的type命令. 说明 该命令有两项功能,其一是用来显示文件的内容,它依次读取由参数file所指明的文件,将它们的 ...

  8. [读书笔记]Linux命令行与shell编程读书笔记03 文件系统等

    1. 文件系统的种类 ext ext2 ext3 ext4 JFS XFS 其中ext3 开始支持journal日志模式 与raid卡类似 有 数据模式  排序模式 以及回写模式 数据模式最安全 回写 ...

  9. fswatch rsync配置使用 rsync 传输大量细小文件

    贴一个脚本这个脚本是rsync远程同步使用的一个脚本 rsync -avz --progress --exclude .git /Users/piperck/Desktop/gogogo/x pipe ...

  10. 如何使用grep 等命令快速的在日志中找到自己需要的内容

    虽然使用linux也有好几年了,但是服务器端开发的活儿正经来算才干不到一年. 一直没有需求和机会会去花大量的时间排查日志啥的,直到我摊上了大事t t,写的代码在线上出了bug需要排查问题. grep可 ...