【脚本化文档】——文档和元素的几何形状和滚动

本文介绍了网页中元素的坐标系统,包括文档坐标和视口坐标的概念,并提供了获取这些坐标的方法。此外,还详细讲解了如何通过JavaScript进行页面滚动操作。

——文档坐标和视口坐标

  • 元素的位置是以像素来度量的,向右代表X坐标的增加,向下代表Y坐标的增加
  • 视口坐标也称为窗口坐标,文档坐标即以document左上角为坐标原点的坐标系
  • 判断浏览器窗口滚动条的位置
    • window.pageXOffset //滚动条横向偏移位置
    • window.pageXOffset——滚动条横向偏移位置

查询窗口的视口尺寸

// 作为一个对象的w和h属性返回视口的尺寸
function getViewportSize(w) {
    w = w || window;  // 使用指定的窗口,若不指定则使用当前窗口
    // 除了IE8及更早的版本外,其他都可用
    if (w.innerWidth != null) return {w: w.innerWidth, h:w.innerHeight};
    var d = w.document;//对于标准模式下的IE
    if (document.compatMode == "CSS1Compat")        
        return { w: d.documentElement.clientWidth,
                 h: d.documentElement.clientHeight };
    // 对于怪异模式下的浏览器
    return { w: d.body.clientWidth, h: d.body.clientWidth };
}

——查询元素的几何尺寸

getBoundingClientRect() 
//返回元素在**视口坐标**中的位置等信息,视具体浏览器而定

百度一下按钮的例子

document.getElementById("su").getBoundingClientRect();

/*返回
DOMRect { x: 891, y: 182.3000030517578, width: 102, height: 38, top: 182.3000030517578, right: 993, bottom: 220.3000030517578, left: 891 }
*/

left和top属性表示元素左上角的X和Y坐标,
right和bottom属性表示元素右下角的X和Y坐标
这四个属性是各个浏览器都有的。其他的是各个浏览器的拓展

该方法可以得到视口坐标,如果需要得到文档坐标,则需要加上滚动条偏移量

var box = e.getBoundingClientRect();
var x = box.left + window.pageXOffset;
var y = box.top + window.pageYoffset;

——判定某坐标点有的元素

document.elementFormPoint(X,Y)
//返回指定位置的一个元素,注意是一个

这里写图片描述
返回的是一个节点信息

——滚动

  • window.scroll(X,Y)——文档滚动到指定点出现在视口的左上角,X和Y为文档坐标
  • window.scrollTo(X,Y)——文档滚动到指定点出现在视口的左上角,X和Y为文档坐标
  • window.scrollBy(X,Y)——文档相对现在的位置滚动多少,是在当前滚动条的偏移量上面增加

这里写图片描述


点击这里下载思维导图——思维导图文件下载

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值