Web Day7

Web

day7_2023.9.15

事件

blur 当元素失去焦点时发生此事件。
focus 在元素获得焦点时发生此事件。

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title></title>
		<style>
			.text{
				color: green;
			}
		</style>
	</head>
	<body>
		密码:<input id="pwd" onblur="checkpwd()" onfocus="focusTest()" type="text"> 
		<span class="text"></span> 
		<br>
		重复密码:<input id="repwd" onblur="blurTest()" type="text">
		<span id="info" style="color: black;"></span> 
	</body>
	<script>
	//失去焦点
		function blurTest(){
			var pwdValue = document.querySelector("#pwd").value;
			var repwdValue = document.querySelector("#repwd").value;
			var info = document.querySelector("#info");
			if(pwdValue === repwdValue){
				info.innerHTML = "两次密码相同";
				info.style.color = "green";
			}else{
				info.innerHTML = "两次密码输入不一致";
				info.style.color = "red";
			}
		}
		
		function checkpwd(){
			var pwdValue = document.querySelector("#pwd").value;
			var reg = /^[A-Z]\w{5,17}/
			var spanEle = document.querySelector(".text");
			
			if(reg.test(pwdValue)){
				spanEle.innerHTML = "密码符合规范";
				spanEle.style.color = "green";
			}else{
				spanEle.innerHTML = "密码不符合规范";
				spanEle.style.color = "red";
			}
			
		}
				//获得焦点
		function focusTest(){
			var spanEle = document.querySelector(".text");
			spanEle.innerHTML = "请输入6-18位的密码";
		}
	</script>
</html>
窗口事件

load、resize、scroll
窗口加载就执行函数中的内容,如果某些函数不被直接调用,又想这个函数执行,可以放到这里
window.onload = function(){
}
risize : 窗口变化触发的事件
scroll : 窗口滚动触发的事件


<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style>
			html,body{
				width: 100%;
				height: 100%;
			}
		</style>
	</head>
	<body onresize="winResize()">
		
	</body>
	<script>
		function winResize(){
			winWidth = document.body.clientWidth;
			winHeight = document.body.clientHeight;
			alert(winWidth + "-----" + winHeight )
		}
	</script>
</html>

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style>
			html,body{
				height: 100%;
			}
		</style>
	</head>
	<body onscroll="scrollHtml()">
		<div style="height: 300%;">
			<span id="test" style="position: relative;top: 0px;">
				滚动了0px
			</span>
		</div>
	</body>
	<script>
		function scrollHtml(){
			var scrollheight = document.documentElement.scrollTop; //滚动的距离
		
			var test = document.querySelector("#test"); //获取span节点
			test.innerHTML = "滚动了"+  scrollheight +"px"
			test.style.top = scrollheight + "px";
		}
	</script>
</html>

click 当用户单击元素时发生此事件。
dblclick 当用户双击元素时发生此事件。
mousedown 当用户在元素上按下鼠标按钮时,发生此事件。
mouseenter 当指针移动到元素上时,发生此事件。
mouseleave 当指针从元素上移出时,发生此事件。
mousemove 当指针在元素上方移动时,发生此事件。
mouseout 当用户将鼠标指针移出元素或其中的子元素时,发生此事件。
mouseover 当指针移动到元素或其中的子元素上时,发生此事件。
mouseup 当用户在元素上释放鼠标按钮时,发生此事件。
clientX 返回触发鼠标事件时,鼠标指针相对于当前窗口的水平坐标。
clientY 返回触发鼠标事件时,鼠标指针相对于当前窗口的垂直坐标。

点击获取鼠标位置

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style>
			html,body{
				width: 100%;
				height: 100%;
			}
		</style>
	</head>
	<body onclick="dianji(event)">
	</body>
	<script>
		function dianji(e){
			dianX = e.clientX;
			dianY = e.clientY;
			alert(dianX + "---" + dianY);
		}
	</script>
</html>
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style>
			html,body{
				width:100%;
				height: 100%;
			}
			#mdiv{
				width: 100px;
				height: 100px;
				background-color: aqua;
				position: absolute;
			}
			
		</style>
	</head>
	<body onmousemove="move(event)">
		<div id="mdiv" onmousedown="down()" onmouseup="up()"
		 style="top: 100px; left: 100px;">
			
		</div>
	</body>
	<script>
		var mdiv;
		var flag = false;
		function down(){
			 mdiv = document.querySelector("#mdiv");
			 flag = true;  //标记鼠标已经按下了
		}
		
		//移动函数
		function move(e){
			//如果鼠标按下了,就可以移动方块了
			if(flag){
				mdiv.style.top = e.clientY-50 + "px";
				mdiv.style.left = e.clientX-50 + "px";
			}
		}
		function up(){
			flag = false;
		}
	</script>
</html>

keydown 当用户正在按下键时,发生此事件。 不松开按键触发
keypress 当用户按下键时,发生此事件。
keyup 当用户松开键时,发生此事件。

使用上下左右,移动方块
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<div id="divbox"></div>
	</body>
	<script>
		var divbox = document.querySelector("#divbox");
		//给节点添加样式
		divbox.style.position = "absolute";
		divbox.style.width = "100px";
		divbox.style.height = "100px";
		divbox.style.backgroundColor = "blue";
		document.onkeydown = keyDown; //添加事件
		
		function keyDown(event){
			var event = event||window.event; //标准化事件对象
			switch(event.keyCode){
				case 37:  // 左移
					divbox.style.left = divbox.offsetLeft - 10 + "px";
					break;
				case 38:  //上移
					divbox.style.top = divbox.offsetTop - 10 + "px";
					break;
				case 39:  //右移
					divbox.style.left = divbox.offsetLeft + 10 + "px";
					break;
				case 40:  //下移
					divbox.style.top = divbox.offsetTop + 10 + "px";
					break;
			}
			return false;
		}
	</script>
	
</html>
放大镜效果
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title></title>
		<style>
			*{
				margin: 0;
				padding: 0;
			}
			img{
				display: block;
			}
			.header{
				height: 100px;
			}
			.center{
				width: 800px;
				margin: 0 auto;
			}
			.box{
				position: relative;
				width: 400px;
			}
			.thumb{
				position: relative;
				width: 400px;
				height: 400px;
			}
			.thumb img{
				width: 100%;
				width: 100%;
			}
			.thumb .move{
				position: absolute;
				top: 0px;
				left: 0px;
				display: none;
				width: 200px;
				height: 200px;
				background-color: rgba(0, 0, 0, 0.2);
			}
			/* 放大区域样式 */
			.scale{
				display: none;
				position: absolute;
				left: 420px;
				top: 0px;
				width: 400px;
				height: 400px;
				overflow: hidden;
			}
			.scale img{
				position: absolute;
				top: 0px;
				left: 0px;
			}
			.thumb:hover .move{
				display: block;
			}
			.thumb:hover+.scale{
				display: block;
			}
		</style>
	</head>
	<body>
		<div class="header"></div>
		
		<div class="center">
			<div class="box">
				<div class="thumb">
					<img src="img/lianyiqunSmall1.jpg" alt="">
					<div class="move"></div>
				</div>
				<div class="scale">
					<img src="img/lianyiqunBig1.jpg" alt="">
				</div>
			</div>
		</div>
		
	</body>
	<script>
		var fangdajing = function(){
			//1,获取小图片的节点
			var thumbElem = document.querySelector(".thumb");
			
			//获取图片距离左边和顶部的距离
			var thumbPosX = Math.round(thumbElem.getBoundingClientRect().left);
			var thumbPosY = Math.round(thumbElem.getBoundingClientRect().top);
			
			//获取移动的小块元素信息
			var moveElem = document.querySelector(".move");
			//给小图上的移动小块绑定一个移动事件
			thumbElem.onmousemove = function(e){
				//获取鼠标移动时候的宽和高
				var moveElemWidth = moveElem.offsetWidth;
				var moveEleHeight = moveElem.offsetHeight;
				
				//计算移动元素,距离图片左边和顶部的距离
				//鼠标中心距离小图左边的值
				var x = e.pageX - thumbPosX;
				var y = e.pageY - thumbPosY;
				
				moveElem.style.left = x - moveElemWidth/2 + "px";
				moveElem.style.top = y - moveEleHeight/2 + "px";
				
				//移动区域超过小图区域的处理
				//左右超过
				if( parseInt(moveElem.style.left )< 0){
					moveElem.style.left = 0;
				}else if(parseInt(moveElem.style.left) >
				(thumbElem.offsetWidth -moveElemWidth)){
					moveElem.style.left = thumbElem.offsetWidth -moveElemWidth +"px";
				}
				//上下超过
				if( parseInt(moveElem.style.top )< 0){
					moveElem.style.top = 0;
				}else if(parseInt(moveElem.style.top) >
				(thumbElem.offsetHeight -moveEleHeight)){
					moveElem.style.top = thumbElem.offsetHeight -moveEleHeight +"px";
				}
				
				//放大的处理
				//计算倍数
				var sca = thumbElem.offsetWidth / moveElemWidth;
				var scaleElem = document.querySelector(".scale");
				var img = scaleElem.querySelector("img");
				console.log(img);
				img.style.left = -(sca * parseInt(moveElem.style.left)) + "px";
				img.style.top = -(sca * parseInt(moveElem.style.top)) + "px";
			}
		}
		
		fangdajing();
	</script>
</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值