# 拖拽与屏幕

# 页面上各种宽度、位置、滚动

window.innerWidth/window.outerWidth 窗口的外层的宽度/内层宽度

window.screen.availWidth(可视化的宽度)

window.screen.availHeight(可视化的高度)

注意

# 点击event
  • event.pageX event.pageY

    • 类似于event.clientX、event.clientY,但它们使用的是文档坐标而非窗口坐标。(如有滚动条,需要加滚动条值!在没滚动条的情况下等于clientX/clientY)这2个属性不是标准属性,但得到了广泛支持。 IE8以下事件中没有这2个属性。
  • event.clientX event.clientY

    • 鼠标相对于浏览器窗口可视区域的X,Y坐标(窗口坐标),可视区域不包括工具栏和滚动条。IE事件和标准事件都定义了这2个属性
  • event.offsetX event.offsetY

    • 鼠标相对于事件源元素(srcElement)的X,Y坐标。
  • event.screenX event.screenY

    • 鼠标相对于用户显示屏左上角的X,Y坐标。标准事件和IE事件都定义了这2个属性
# 点击的盒子
  • clientWidth clientHeight

    • 该属性指的是元素的 可视部分 宽度和高度
    • 包括padding但不包括border、水平滚动条、margin的元素的高度。对于inline的元素这个属性一直是0
  • clientTop clientLeft

    • 这一对属性是用来读取元素的border的宽度和高度的

    clientTop = border-top 的 border-width

    clientLeft = border-left 的 border-width

  • offsetWidth offsetHeight

    • 这一对属性指的是元素的border+padding+content的宽度和高度
    • 包括padding、border、水平滚动条
  • offsetLeft offsetTop

    • 获取当前对象到其上级层左边/上边的距离获取当前对象到其上级层顶部的距离,他们的参照物是offsetParent
  • scrollWidth scrollHeight

    • 无滚动轴时:scrollWidth = clientWhidth = style.width + style.padding×2 有滚动轴时:scrollWidth = 实际内容的宽度 + padding×2
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<meta name="viewport" content="width=device-width, initial-scale=1">
		<title></title>
		<style>
			*{margin:0;padding:0}
			#k1{
				width:300px;
				height:2000px;
				background: #61DAFB;
			}
			
			#k2{
				position: relative;
				width:300px;
				height:300px;
				background: #FB929E;
				top:100px;
				left:120px;
			}
			#k3{
				position:relative;
				width:100px;
				height:100px;
				background: #282C34;
				top:50px;
				left:20px;
				overflow-y: auto;
				padding:5px;
				border:5px solid red;
			}
			p{
				height:50px;
				color:#61DAFB
			}
		</style>
	</head>
	<body>
		<div id="k1"></div>
		<div id="k2">
			<div id="k3">
				<p>1</p>
				<p>1</p>
				<p>1</p>
				<p>1</p>
				<p>1</p>
			</div>
		</div>
	</body>
</html>
<script type="text/javascript">
var k1=document.getElementById("k1")||0;
var k2=document.getElementById("k2");
var k3=document.getElementById("k3");
k3.onclick=function(ev){
	var e=ev||window.event;
	var scrollTop = document.documentElement.scrollTop ||
					window.pageYOffset || 
					document.body.scrollTop;
	// console.log(e.clientX);
	// console.log(e.clientY)
	// // console.log(e.pageX)
	// // console.log(e.pageY)
	// // console.log(scrollTop)
	// console.log(e.screenX)
	// console.log(e.screenY)
	//console.log(e.offsetX)
	// console.log(e.offsetY)
	// console.log(e.screenX-e.clientX)
	// console.log(k3.offsetWidth)
	// console.log(k3.offsetHeight)
	// // console.log(k3.offsetTop)
	// console.log(k3.clientWidth)
	// console.log(k3.clientHeight)
	// console.log(document.body.scrollHeight)
	// console.log(document.documentElement.scrollHeight)
	// console.log(window.innerWidth)
	// k3.style.width="400px";
}
</script>


最后更新: 1/15/2021, 5:11:42 PM