首页 > 编程语言 >JavaScript基础回顾知识点记录6-操作元素样式和事件对象(介绍基本使用)

JavaScript基础回顾知识点记录6-操作元素样式和事件对象(介绍基本使用)

时间:2022-08-23 18:03:59浏览次数:157  
标签:知识点 style 样式 JavaScript 对象 事件 var document

  • js 中 操作元素样式
    • 通过js修改元素内联样式(设置和读取的都是内联样式)
    • 获取当前元素显示的样式
      <html>
      	<head>
      		<meta charset="utf-8">
      		<title></title>
      	</head>
      	<style type="text/css">
      		#box1 {
      			width: 200px;
      			height: 200px;
      			background-color: aquamarine;
      		}
      	</style>
      	<body>
      		<button type="button" id="btn1">点我下1</button>
      		<button type="button" id="btn2">点我下2</button>
      		<button type="button" id="btn3">点我下3</button>
      		<br><br>
      		<div id="box1">
      
      		</div>
      	</body>
      	<script type="text/javascript">
      		window.onload = function() {
      			var btn01 = document.getElementById("btn1");
      			var box01 = document.getElementById("box1");
      			btn01.onclick = function() {
      				/*
      				通过js修改元素内联样式:  
      					语法:  元素对象.style.样式名 = 样式值
      					样式名: background-color 是不符合的, 需要改为驼峰命名: backgroundColor
      					注意: 这种方法设置和读取的都是内联样式
      				*/
      				box01.style.width = "400px";
      				box01.style.height = "400px";
      				box01.style.backgroundColor = "red";
      			}
      			/*
      			获取当前元素显示的样式:
      				语法: 元素对象.currentStyle.样式名  。 此方法只有IE浏览器支持
      				其他浏览器获取样式: getComputedStyle(元素对象,null).样式名 ;
      								
      			*/
      			var btn2 = document.getElementById("btn2");
      			btn2.onclick = function() {
      				alert(box01.currentStyle.width);
      			}
      
      			var btn3 = document.getElementById("btn3");
      			btn3.onclick = function() {
      				var style_obj = getComputedStyle(box1, null);
      				alert(style_obj.width);
      			}
      		}
      	</script>
      </html>
      
  • js 中 事件对象
    • 当事件的响应函数被触发时,浏览器每次都会将一个事件对象作为实参传递进响应函数
    • 在这个事件对象中封装了当前事件相关的一切信息(鼠标的坐标、键盘那个键被按下,鼠标滚动的方向等)
    • 注意: 在ie8及以下浏览器中,响应函数触发时,不会传递事件对象。 事件对象是作为window对象的属性来存储的。
    • 以一个鼠标移入某个区域后显示x、y坐标为例子
      <html>
      	<head>
      		<meta charset="utf-8">
      		<title></title>
      	</head>
      	<style type="text/css">
      		#areaDiv {
      			width: 200px;
      			height: 100px;
      			border: black 3px solid;
      			margin-bottom: 10px;
      		}
      
      		#showMsg {
      			width: 200px;
      			height: 30px;
      			border: black 3px solid;
      		}
      	</style>
      	<body>
      		<div id="areaDiv"></div>
      		<div id="showMsg"></div>
      	</body>
      	<script type="text/javascript">
      		var areaDiv = document.getElementById('areaDiv');
      		var showMsg = document.getElementById('showMsg');
      
      		/*
      			 onm ousemove 事件: 鼠标在元素中移动时触发
      			 事件对象: 当事件的响应函数被触发时,浏览器每次都会将一个事件对象作为实参传递进响应函数
      				在这个事件对象中封装了当前事件相关的一切信息(鼠标的坐标、键盘那个键被按下,鼠标滚动的方向等)
      			 note: 在ie8及以下浏览器中,响应函数触发时,不会传递事件对象。 事件对象是作为window对象的属性来存储的。
      			 
      		*/
      
      		areaDiv.onmousemove = function(e) {
      			// 解决事件对象兼容性问题: 两种写法:
      			// if (!e) {
      			// 	e = window.e;
      			// }
      			e = e || window.e;
      			showMsg.innerHTML = 'x坐标:' + e.clientX + ',y坐标:' + e.clientY;
      		}
      
      		areaDiv.onmouseout = function() {
      			showMsg.innerHTML = '';
      		}
      	</script>
      </html>
      
  • 鼠标移动事件,实现某个div跟随鼠标移动(复制代码运行直接看效果更直观)
    <html>
    	<head>
    		<meta charset="utf-8">
    		<title></title>
    	</head>
    	<style type="text/css">
    		#box {
    			position: absolute;
    			width: 50px;
    			height: 50px;
    			background-color: #7FFFD4;
    		}
    	</style>
    	<body style="height: 1200px;">
    		<div id="box">
    
    		</div>
    	</body>
    	<script type="text/javascript">
    		/*
    			clientX 和 clientY 是获取当前可见页窗口的坐标
    			pageX 和 pageY 是获取相对当前页面的坐标 (当页面可以往下滚动时,需要使用这个获取坐标),但是在IE8中不支持
    		*/
    		document.onmousemove = function(e) {
    			/*
    				获取滚动条高度
    				IE和火狐不识别滚动条属于body的, 谷歌、edge可以识别。
    				IE和火狐认为滚动条属于html的。documentElement,但是edge识别不了html的滚动条
    			*/
    			var st = document.body.scrollTop || document.documentElement.scrollTop;
    			e = e || window.e;
    			var box = document.getElementById('box');
    			box.style.left = e.clientX + 'px';
    			box.style.top = e.clientY + st + 'px';
    		}
    	</script>
    </html>
    

标签:知识点,style,样式,JavaScript,对象,事件,var,document
From: https://www.cnblogs.com/study-hmz/p/16617197.html

相关文章

  • JavaScript之Object.assign()方法详解
    Object.assign()方法用于将所有可枚举属性的值从一个或多个源对象复制到目标对象。它将返回目标对象。语法:Object.assign(target,...sources)target:目标对象。sourc......
  • css,css选择器,css伪类选择器,css选择器优先级,字体样式,背景属性,display属性
    表单(form)知识补充CSScss是什么css语法css布局分类css注释css选择器css选择器分组和嵌套css伪类选择器css选择器优先级!important 字体样式(fo......
  • 前言 - JavaScript指南
    前  言 读书是一件快乐的事情。读书能够增长知识,了解社会,了解人类的思想,继而转换成智慧。无论是什么人,都需要读书,多读书,读好书,同时也要把书中的精髓记录下......
  • 一天一个知识点-----vue项目简单引入svg
    项目背景:vue3.0+elementPlus注意项目结构,主要涉及的几个文件及文件夹---直接上代码----1.最开始是要下载包npminstallsvg-sprite-loader2.配置项目的配置文件vu......
  • ArcGIS API for JavaScript FeatureLayer definitionExpression 被认定为sql注入攻击
    背景 目前有一个区的图斑数据需要分乡镇展示,所以采用FeatureLayer的definitionExpression构造SQL语句进行过滤,官方提供的示例:1//Setdefinitionexpress......
  • css样式
    几点样式1.margin外边距元素与元素间隔开顺时针2.padding内边距元素与内容隔开3.position:relative相对定位,相对于自己原来位置,原来位置占用空......
  • Javascript日期、城市选择器(demo)
    1<htmlxmlns="http://www.w3.org/1999/xhtml">2<head>3<title>精美js日期选择器,js省市选择器-何问起</title>4<linktype="text/css"rel="Stylesheet"hre......
  • 使用element-ui的upload组件时.el-upload__input样式出错的解决办法
    使用element-ui的upload组件时.el-upload__input样式出错的解决办法错误复现:这个样式错误折磨了我一下午!得记录一下。这个样式突然出现问题,基本解决办法有两种。一种是......
  • Php语法知识点小结
    参考https://www.cnblogs.com/zyf-zhaoyafei/p/4828358.html#tree19isset()、empty()与is_null的区别1、当变量未定义时,is_null()和“参数本身”是不允许作为参数判......
  • 常用样式
    文字超出显示省略号/*单行*/div{width:200rpx;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}/*多行*/div{display:-webkit-box;-webkit-box-o......