js:可能是最全的scroll相关的方法

1、基本API

screenLeft

返回相对于屏幕的X坐标。

screenX

返回相对于屏幕的X坐标,同screenLeft。

scrollX

scrollX和scrollY分别是文档相对于当前浏览器视口已滚动的距离。

scrollTop,scrollLeft

网页上边被卷去的内容高度。注:只有dom有

获取:element.scrollTop
赋值:element.scrollTop = 200

scrollHeight,scrollWidth

元素滚动条内的内容高度。注:只有dom有,只读,不可设置

获取:element.scrollHeight
document.getElementById('mainBox').scrollWidth

scrollBy(x,y)

滚动指定的距离。

scrollTo(x,y)

滚动到指定的坐标位置。

clientX

鼠标指针到屏幕可视区域左端的距离

dom.onclick = function (e) {
   console.log(e.clientX);
}

pageYOffset

滚动条距离页面顶部的距离。

offsetTop

获取ele元素距离父元素的offsetTop值

el.offsetTop;

offsetParent

获取该元素的有定位的父级元素

el.offsetTop;

2、实例

判断滚动到底部

<!DOCTYPE html>
<html>
<head>
	<title>判断滚动到底部</title>
	<style type="text/css">
		#aa{
			width:300px;
			height:400px;
			overflow-y:scroll;
		}
	</style>
	<script type="text/javascript" src="jquery-3.1.1.min.js"></script>
</head>
<body>
	<div id="aa">
		<div id="bb">
			Lorem ipsum dolor sit amet consectetur adipisicing elit. Modi nostrum, fuga veniam tenetur ex assumenda. Doloremque, nesciunt? Unde dolorum, sapiente est quaerat quas consectetur, necessitatibus hic aperiam repellat odit blanditiis!Lorem ipsum dolor sit amet consectetur adipisicing elit. Modi nostrum, fuga veniam tenetur ex assumenda. Doloremque, nesciunt? Unde dolorum, sapiente est quaerat quas consectetur, necessitatibus hic aperiam repellat odit blanditiis!Lorem ipsum dolor sit amet consectetur adipisicing elit. Modi nostrum, fuga veniam tenetur ex assumenda. Doloremque, nesciunt? Unde dolorum, sapiente est quaerat quas consectetur, necessitatibus hic aperiam repellat odit blanditiis!Lorem ipsum dolor sit amet consectetur adipisicing elit. Modi nostrum, fuga veniam tenetur ex assumenda. Doloremque, nesciunt? Unde dolorum, sapiente est quaerat quas consectetur, necessitatibus hic aperiam repellat odit blanditiis!Lorem ipsum dolor sit amet consectetur adipisicing elit. Modi nostrum, fuga veniam tenetur ex assumenda. Doloremque, nesciunt? Unde dolorum, sapiente est quaerat quas consectetur, necessitatibus hic aperiam repellat odit blanditiis!Lorem ipsum dolor sit amet consectetur adipisicing elit. Modi nostrum, fuga veniam tenetur ex assumenda. Doloremque, nesciunt? Unde dolorum, sapiente est quaerat quas consectetur, necessitatibus hic aperiam repellat odit blanditiis!
		</div>
	</div>
	<div>
		Lorem ipsum dolor sit amet consectetur adipisicing elit. Modi nostrum, fuga veniam tenetur ex assumenda. Doloremque, nesciunt? Unde dolorum, sapiente est quaerat quas consectetur, necessitatibus hic aperiam repellat odit blanditiis!Lorem ipsum dolor sit amet consectetur adipisicing elit. Modi nostrum, fuga veniam tenetur ex assumenda. Doloremque, nesciunt? Unde dolorum, sapiente est quaerat quas consectetur, necessitatibus hic aperiam repellat odit blanditiis!Lorem ipsum dolor sit amet consectetur adipisicing elit. Modi nostrum, fuga veniam tenetur ex assumenda. Doloremque, nesciunt? Unde dolorum, sapiente est quaerat quas consectetur, necessitatibus hic aperiam repellat odit blanditiis!Lorem ipsum dolor sit amet consectetur adipisicing elit. Modi nostrum, fuga veniam tenetur ex assumenda. Doloremque, nesciunt? Unde dolorum, sapiente est quaerat quas consectetur, necessitatibus hic aperiam repellat odit blanditiis!Lorem ipsum dolor sit amet consectetur adipisicing elit. Modi nostrum, fuga veniam tenetur ex assumenda. Doloremque, nesciunt? Unde dolorum, sapiente est quaerat quas consectetur, necessitatibus hic aperiam repellat odit blanditiis!Lorem ipsum dolor sit amet consectetur adipisicing elit. Modi nostrum, fuga veniam tenetur ex assumenda. Doloremque, nesciunt? Unde dolorum, sapiente est quaerat quas consectetur, necessitatibus hic aperiam repellat odit blanditiis!Lorem ipsum dolor sit amet consectetur adipisicing elit. Modi nostrum, fuga veniam tenetur ex assumenda. Doloremque, nesciunt? Unde dolorum, sapiente est quaerat quas consectetur, necessitatibus hic aperiam repellat odit blanditiis!Lorem ipsum dolor sit amet consectetur adipisicing elit. Modi nostrum, fuga veniam tenetur ex assumenda. Doloremque, nesciunt? Unde dolorum, sapiente est quaerat quas consectetur, necessitatibus hic aperiam repellat odit blanditiis!Lorem ipsum dolor sit amet consectetur adipisicing elit. Modi nostrum, fuga veniam tenetur ex assumenda. Doloremque, nesciunt? Unde dolorum, sapiente est quaerat quas consectetur, necessitatibus hic aperiam repellat odit blanditiis!Lorem ipsum dolor sit amet consectetur adipisicing elit. Modi nostrum, fuga veniam tenetur ex assumenda. Doloremque, nesciunt? Unde dolorum, sapiente est quaerat quas consectetur, necessitatibus hic aperiam repellat odit blanditiis!Lorem ipsum dolor sit amet consectetur adipisicing elit. Modi nostrum, fuga veniam tenetur ex assumenda. Doloremque, nesciunt? Unde dolorum, sapiente est quaerat quas consectetur, necessitatibus hic aperiam repellat odit blanditiis!Lorem ipsum dolor sit amet consectetur adipisicing elit. Modi nostrum, fuga veniam tenetur ex assumenda. Doloremque, nesciunt? Unde dolorum, sapiente est quaerat quas consectetur, necessitatibus hic aperiam repellat odit blanditiis!Lorem ipsum dolor sit amet consectetur adipisicing elit. Modi nostrum, fuga veniam tenetur ex assumenda. Doloremque, nesciunt? Unde dolorum, sapiente est quaerat quas consectetur, necessitatibus hic aperiam repellat odit blanditiis!Lorem ipsum dolor sit amet consectetur adipisicing elit. Modi nostrum, fuga veniam tenetur ex assumenda. Doloremque, nesciunt? Unde dolorum, sapiente est quaerat quas consectetur, necessitatibus hic aperiam repellat odit blanditiis!Lorem ipsum dolor sit amet consectetur 
	</div>
</body>
<script type="text/javascript">
	$(function() {
		//#aa这一部分滚动到底部
		$("#aa").scroll(function() {
			// 源生写法
			// if(this.scrollTop >= this.scrollHeight - this.clientHeight) {
			// 	alert('aa滑到了底部');
			// }

			// jQuery写法
			if($(this).scrollTop() >= $(this)[0].scrollHeight - $(this).height()) {
				alert('aa滑到了底部');
			}
		})

		//整个页面滚动到底部
		$(window).scroll(function() {
			// 源生写法(下一块代码)
			// 很麻烦,因为要判断document.body和document.documentElement对各个浏览器的兼容性,可参考https://www.cnblogs.com/winyh/p/6715010.html

			// jQuery写法
			if($(window).scrollTop() >= $(document).height() - $(window).height()) {
				alert('页面滑到了底部');
			}
		})
	})
</script>
</html>
源生整个页面滚动到底部(兼容不同的浏览器)。
//滚动条在Y轴上的滚动距离
function getScrollTop(){
  var scrollTop = 0, bodyScrollTop = 0, documentScrollTop = 0;
  if(document.body){
    bodyScrollTop = document.body.scrollTop;
  }
  if(document.documentElement){
    documentScrollTop = document.documentElement.scrollTop;
  }
  scrollTop = (bodyScrollTop - documentScrollTop > 0) ? bodyScrollTop : documentScrollTop;
  return scrollTop;
}
 
//文档的总高度
function getScrollHeight(){
  var scrollHeight = 0, bodyScrollHeight = 0, documentScrollHeight = 0;
  if(document.body){
    bodyScrollHeight = document.body.scrollHeight;
  }
  if(document.documentElement){
    documentScrollHeight = document.documentElement.scrollHeight;
  }
  scrollHeight = (bodyScrollHeight - documentScrollHeight > 0) ? bodyScrollHeight : documentScrollHeight;
  return scrollHeight;
}
 
//浏览器视口的高度
function getWindowHeight(){
  var windowHeight = 0;
  if(document.compatMode == "CSS1Compat"){
    windowHeight = document.documentElement.clientHeight;
  }else{
    windowHeight = document.body.clientHeight;
  }
  return windowHeight;
}
 
window.onscroll = function(){
  if(getScrollTop() + getWindowHeight() == getScrollHeight()){
    alert("已经到最底部了!!");
  }
};
  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Lvan的前端笔记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值