下面我将详细讲解关于“JS前端知识点offset,scroll,client,冒泡,事件对象的应用整理总结”的攻略以及示例说明。
标题
一、offset、scroll、client的应用说明
1. offset
offset
是获取元素相对于其offsetParent的位置信息,包括元素的宽高、距离上下左右的距离。使用offsetLeft
和offsetTop
属性来获取距离最近的已经定位的父级的offsetLeft
和offsetTop
值,并将它们相加,就能得出元素在文档中的绝对位置。
示例说明:
<div style="position: relative; left: 50px">
<div id="box1" style="position: relative; left: 100px; top: 100px"></div>
</div>
<script type="text/javascript">
var box1 = document.getElementById('box1');
console.log(box1.offsetLeft) // 输出 100
console.log(box1.offsetTop) // 输出 100
</script>
2. scroll
scroll
是获取元素在滚动时的位置信息,包括元素的宽高、距离屏幕上下左右的距离。使用scrollTop
和scrollLeft
属性来获取元素在垂直和水平方向的滚动值。
示例说明:
<div style="height: 200px; overflow: scroll;">
<p id="box2" style="height: 500px"></p>
</div>
<script type="text/javascript">
var box2 = document.getElementById('box2');
console.log(box2.scrollHeight) // 输出 500
console.log(box2.scrollTop) // 输出 0
</script>
3. client
client
是获取元素在窗口中的位置信息,包括元素的宽高、距离窗口上下左右的距离。使用clientWidth
和clientHeight
属性来获取元素可视区的宽高。使用clientTop
和clientLeft
属性来获取元素边框宽度。
示例说明:
<div style="height: 200px; overflow: scroll;">
<p id="box3" style="height: 500px"></p>
</div>
<script type="text/javascript">
var box3 = document.getElementById('box3');
console.log(box3.clientWidth) // 输出 188
console.log(box3.clientHeight)// 输出 200
console.log(box3.clientLeft) // 输出 1
console.log(box3.clientTop) // 输出 1
</script>
二、冒泡与事件对象的应用
1. 冒泡
事件的冒泡是指,事件被触发后,从最内层的元素开始,逐层向外执行。当每个元素都完成处理后,最终事件会回到文档树的根节点。可以使用event.stopPropagation()
来阻止事件的冒泡。
示例说明:
<div id="parent">
<div id="child"></div>
</div>
<script type="text/javascript">
var parent = document.getElementById('parent');
var child = document.getElementById('child');
parent.addEventListener('click', function(){
console.log('parent clicked');
});
child.addEventListener('click', function(event){
event.stopPropagation();
console.log('child clicked');
});
</script>
2. 事件对象
事件对象是指在响应事件的函数内部自动生成的一个对象,它包含了与事件相关的信息。可以使用event.target
来获取触发事件的目标元素。可以使用event.preventDefault()
来阻止默认的事件行为。
示例说明:
<a href="https://www.baidu.com" id="link">baidu</a>
<script type="text/javascript">
var link = document.getElementById('link');
link.addEventListener('click', function(event){
event.preventDefault();
console.log(event.target.href); // 输出 https://www.baidu.com
});
</script>
结束语
以上就是关于“JS前端知识点offset,scroll,client,冒泡,事件对象的应用整理总结”的攻略和示例说明。希望对大家有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JS前端知识点offset,scroll,client,冒泡,事件对象的应用整理总结 - Python技术站