元素偏移量offset系列
1.offset概述
offset含义:offset的含义是偏移量,使用offset的相关属性可以动态地获取该元素的位置、大小等。
2.【案例】获取鼠标指针在盒子内的坐标
<style>
#box{
position: absolute;
left: 50px;
top: 20px;
width: 200px;
height: 200px;
background-color: pink;
}
</style>
<body>
<div id="box"></div>
<script>
var box = document.querySelector('#box');
console.log("宽度:",box.offsetWidth);
console.log("高度:",box.offsetHeight);
box.addEventListener('mousemove',function(e){
var left = box.offsetLeft;
var top = box.offsetTop;
var x = e.pageX - left;
var y = e.pageY - top;
console.log("x轴坐标:"+x+",y轴坐标:"+y);
})
</script>
</body>
3.offset与style的区别
元素可视区client系列
client系列:client中文意思是客户端,通过使用client系列的相关属性可以获取元素可视区的相关信息。
元素滚动scroll系列
1.scroll概述
scroll含义:scroll的含义是滚动,使用scroll系列的相关属性可以动态地获取该元素的滚动距离、大小等。 注意:返回数值不带单位。
2.【案例】固定侧边栏效果
<style>
.w{
width: 70%;
margin: 0 auto;
margin-top: 10px;
}
.header{
height: 100px;
background-color: red;
}
.banner{
height: 200px;
background-color: pink;
}
.main{
height: 1267px;
background-color: orange;
}
.slider-bar{
width: 70px;
height: 200px;
background-color: yellow;
position: absolute;
left: 85%;
top: 330px;
}
.goBack{
display: none;
position: absolute;
bottom: 0;
}
</style>
<body>
<div class="header w">头部区域</div>
<div class="banner w">bananer区域</div>
<div class="main w">主体区域</div>
<div class="slider-bar">
<span class="goBack">返回顶部</span>
</div>
<script>
var header = document.querySelector(".header");
var banner = document.querySelector(".banner");
var slider = document.querySelector(".slider-bar");
var goBack = document.querySelector(".goBack");
goBack.addEventListener("click",function(){
window.scrollTo(0,0);
})
document.addEventListener('scroll',function(){
slider.style.top = window.pageYOffset;
if(window.pageYOffset>(header.scrollHeight+banner.scrollHeight + 30)){
goBack.style.display = 'block';
slider.style.position = 'fixed';
slider.style.top = '0px';
}else{
slider.style.position = 'absolute';
slider.style.top = (header.scrollHeight+banner.scrollHeight + 30)+'px';
goBack.style.display = 'none';
}
})
</script>
</body>
|