JS高度融合入门笔记(二)
<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<title>JS2</title>
	<style type="text/css">
		#d1{
            height: 100px;
            width: 100px;
            background-color: red;
            position: absolute;
            top: 0;
            left: 0;
            transition-delay: 0s;
            transition-duration: 6s;
            transition-timing-function: linear;
            transition-property:all;
        }
	</style>
</head>
<body>
<div style="border: solid 5px blue;">
	<div style="height: 50px;"></div>
	<div id="aa"></div>
</div>
<textarea id="t"></textarea>
<button id="btn">点一下</button>
<div id="dd"></div>
<div id="d1"></div>
<script type="text/javascript">
	//距离问题
	var a = document.getElementById('aa');
	console.dir(a);
	//clientHeight = 内边距 + height(实际尺寸) 不含滚动轴的宽度
	//offsetHeight = 内边距 + height 		+	边框宽度
	//scrollHeight = 如果滚动条出现,则是可滚动的极限高度。如果没有滚动条,高度和clientHeight一样
	a.clientHeight;
	a.clientWidth;
	a.offsetWidth;
	a.offsetHeight;
	a.offsetTop;
	a.clientTop
a.scrollTop;
	a.scrollWidth;
	a.scrollHeight;
	//鼠标的距离
	//鼠标点击事件发生的时候"点击点"距离浏览器左上角的距离
	//如果有滚动距离,该距离不含滚动距离,知识相对看到的区域左上角的位置
	var i = document.getElementById('dd');
	i.onclick = function (xxx) {
		event.clientX;
		event.clientY;
		event.pageX;
		event.pageY;
		event.target;
		event.toElement;
	}
	//按键事件及按键判断
	document.onkeydown = function(){
		var d1 = document.getElementById('d1');
		if (event.key == 'd') {
			d1.style.left = d1.offsetLeft + 100 + 'px';
		}
		if (event.key == 'a') {
			d1.style.left = d1.offsetLeft - 100 + 'px';
		}
		if (event.key == 's') {
			d1.style.top = d1.offsetTop + 100 + 'px';
		}
		if (event.key == 'w') {
			d1.style.top = d1.offsetTop - 100 + 'px';
		}
	}
	//JS有两种流:捕获流和冒泡流
	//捕获流:最外层最先接收的事件,然后逐级向下传播,知道传到具体的元素对象上
	//冒泡流:最内层(最具体的元素)最先接收到事件,然后逐级向上传播,知道最外层
	//HTML事件就是事件以及事件的处理程序和html混写在一起
	//DOM 0级事件
	d1.onclick = f1;
	//清楚DOM 0级事件
	d1.onclick = null;
	//DOM 2级事件
	//可以为一个对象添加多个相同的事件处理程序,执行顺序按照代码先后顺序执行
	//参数1:事件类型(不带on)
	//参数2:事件的处理程序
	//参数3:表示添加事件的时机,为true时表示在捕获阶段添加事件,false表示在冒泡阶段添加事件
	d1.addEventListener('click',f1,true);
	d1.addEventListener('click',f2,true);
	//移出DOM 2级事件处理程序(参数和绑定时的一致)
	d1.removeEleventListener('click',f1,true);
	//IE事件模型
	//添加事件(只在冒泡阶段添加),该方法也可以为一个对象添加多个相同事件
	//参数1:事件类型(带on)
	//参数2:事件的处理程序
	d1.attachEvent('onclick',f1);
	d1.attachEvent('onclick',f2);
	//移除事件
	d1.detachEvent('onclick',f1);
	//兼容性处理
	//思路:考虑多种浏览器的具体情况,然后统一封装,方便后期维护
	//event事件
	var d1 = document.getElementById('d1');
	d1.onclick = function(e){
		//event对象只有在事件发生的时候才会产生
		//事件对象其实会默认传入到事件处理程序中
		alert(e)
		//获取事件的时候,使用这样的操作进行兼容的获取对象方法
	}
	//防止事件冒泡
	e.stopPropagation();
	//IE
	window.event.cancelBubble = true;
	//委托绑定
	//利用事件的冒泡特性,将本来该绑定到具体的元素的事件委托给其上级对象进行绑定
	var u = document.getElementById('u');
	u.addEventListener('click',function(){
		console.log(event.target.innerHTML);
		console.log(this);
	})
	//Window对象
	window.innerHeight;
	window.innerWidth;
	window.open();
	window.print();
	window.close();
	window.confirm();
	window.prompt();
window.scrollTo(100,500);
	window.name;
	window.self;
	window.parent;
	window.document.(...);
</script>
</body>
</html>
                
            
        
浙公网安备 33010602011771号