zoukankan      html  css  js  c++  java
  • 理解screenX clientX pageX概念

    先了解screenX,clientX,pageX概念

    screenX: 鼠标位置相对于用户屏幕水平偏移量,而screenY就是垂直方向的,此时的参照点也就是原点是屏幕的左上角。
    
    clientX: 跟screenX相比就是将参照点改成了浏览器内容区域的左上角,该参照点不会随之滚动条的移动而移动。
    
    pageX: 参照点也是浏览器内容区域的左上角,但它会随着滚动条而变动
    

    下面看看具体的各个对象中的这些属性

    window对象

    (1)window.screenX,window.screenY
    
    返回浏览器窗口左上角相对于当前屏幕左上角((0, 0))的水平距离和垂直距离,单位为像素。
    
    (2)window.innerHeight,window.innerWidth
    
    返回网页在当前窗口中可见部分的高度和宽度,包括滚动条的高度和宽度
    
    (3)window.outerHeight,window.outerWidth
    
    返回浏览器窗口的高度和宽度,包括浏览器菜单和边框
    
    (4)window.pageXOffset,window.pageYOffset
    
    返回页面的水平垂直滚动距离
    

    Screen对象

    availHeight 	返回屏幕的高度(不包括Windows任务栏)
    
    availWidth 	返回屏幕的宽度(不包括Windows任务栏)
    
    height 	返回屏幕的总高度
    
    width 	返回屏幕的总宽度
    

    Element对象盒状模型相关属性

    (1)Element.clientHeight,Element.clientWidth
    
    返回元素的可见高度和宽度,计算公式:clientHeight = topPadding + bottomPadding+ height - scrollbar.height
    
    (2)Element.clientLeft,Element.clientTop
    
    元素节点左边框(left border)的宽度,网页元素顶部边框的宽度,这两个属性包括滚动条的宽度,但不包括Margin和Padding。
    
    (3)Element.offsetHeight,Element.offsetWidth 
    
    返回元素的高度和宽度,计算公式:offsetHeight = clientHeight + 滚动条 + 边框
    
    (4)Element.offsetLeft,Element.offsetTop 返回元素的水平和垂直位移
    
    默认是参照body元素,当然也可以设置position:relative来改变属性
    
    (5)Element.scrollHeight,Element.scrollWidth 
    
    返回元素的整体高度和宽度,计算公式:scrollHeight = topPadding + bottomPadding + 内容高度
    
    (6)Element.scrollLeft,Element.scrollTop 
    
    返回元素左边缘和右边缘与视图之间的距离
    
    

    event对象

    (1)event.clientX、event.clientY
    
    鼠标相对于浏览器窗口可视区域的X,Y坐标(窗口坐标),可视区域不包括工具栏和滚动条。IE事件和标准事件都定义了这2个属性
    
    (2)event.screenX、event.screenY
    
    鼠标相对于用户显示器屏幕左上角的X,Y坐标。标准事件和IE事件都定义了这2个属性
    
    (3)event.pageX、event.pageY
    
    类似于event.clientX、event.clientY,但它们使用的是文档坐标而非窗口坐标。这2个属性不是标准属性,但得到了广泛支持。IE事件中没有这2个属性
    
    (4)event.offsetX、event.offsetY
    
    鼠标相对于事件源元素(srcElement)的X,Y坐标,只有IE事件有这2个属性,标准事件没有对应的属性。
    
  • 相关阅读:
    使用 RestSharp 调用 WebAPI 接口
    Android Studio 下载安装目录
    多线程之await/async
    ScriptX进行Web打印
    Sqlserver 查询最新修改过的表、过程和视图等
    SqlServer中的bit类型
    .Net 6
    PDA 使用总结
    SQL Server 发布订阅 发布类型详解
    Profile对象
  • 原文地址:https://www.cnblogs.com/YeChing/p/6249473.html
Copyright © 2011-2022 走看看