IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> jq简单实现吸顶和回顶部详细步骤与说明 -> 正文阅读

[JavaScript知识库]jq简单实现吸顶和回顶部详细步骤与说明

实现的效果是:

? ? ? ? ? ? ? ? 当滚动距离到达一定位置时会触发吸顶效果,让回顶部按钮出现

? ? ? ? ? ? ? ? 当滚动距离小于一定高度是不吸顶,回顶部按钮消失

? ? ? ? ? ? ? ? 点击回顶部页面和滚动距离都回到顶部

? ? ? ? ? ? ? ?

整体代码:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script src="../js/jquery-3.6.0.js" type="text/javascript" charset="utf-8"></script>
		<style type="text/css">
			*{
				margin: 0;
				padding: 0;
				}
				/* 设置头部高和颜色 */
			.header{
				height: 120px;
				background-color: #0000FF;
				}
				/* 设置导航高和颜色 */
			.nav{
					line-height: 40px;
					background-color: #00FFFF;
					
				}
				/* 设置内容高和背景颜色 */
			.content{
					height: 3000px; 
					background-color: #F5F5DC;
				}
			/* 设置距离顶部的高度和nav高度保持一致 */
			.sticky{
				padding-top: 40px;
			}
			/* 设置定位 */
			.sticky .nav{
				position: fixed;
				left: 0;
				top: 0;
				width: 100%;
			}
			/* 设置返回顶部按钮的样式与定位 */
			.top{
				width:50px;
				border:1px solid #FFD700;
				position: fixed;
				bottom: 50px;
				right: 20px;
				line-height: 50px;
				text-align: center;
			}
		</style>
	</head>
	<body>
		<div class="header">
			header
		</div>
		<div class="nav">
			nav
		</div>
		<div class="content">
			内容
		</div>
		<div class="top">
			top
		</div>
		<script type="text/javascript">
			$(function(){
				// 给页面加入scroll事件
				$(document).scroll(function(){

					// 获取页面垂直滚动距离
					var top=$(document).scrollTop()

					// 如果滚动距离大于120,也就是大于header的距离时
					// 给body添加一个sticky类,(目的是当body有了.sticky类时会触发 .sticky.nav
					// 中设置的样式就会起作用,nav就会不动,吸在顶部,当nav吸在顶部时内容会被覆盖nav一样的高度
					// 所以给body加一个padding-top:40px;的值)
					if(top>120){
						// 给body添加sticky类,同时.sticky .nav里的样式就可以用了,nav吸顶
						$("body").addClass("sticky")
					}else{
						// 否则删除sticky类
						$("body").removeClass("sticky")
					}

					// 如果滚动距离大于打开窗口的高度的一半时
					if(top>$(window).innerHeight()/2){
							// 回顶部按钮就会淡入效果出现
						$(".top").fadeIn();
					}else{
						// 否则隐藏按钮
						$(".top").hide();
					}
				})

				// 点击回顶部按钮时
				$(".top").click(function(){
						// 当页面回顶部时添加动画效果滚动条距离用0.6s到0
						$("html,body").animate({scrollTop:0},600)
					})
			})
		</script>
	</body>
</html>

PS:实现的简单吸顶回顶部效果,如果理解了可以举一反三哦

学习时遇到的小问题? ? ? ??

刚开始不理解为什么要给body加padding-top,原来是为了内容不被触发粘性定位的内容给覆盖? 哈哈哈 学到了

还有一个小技巧就是给一个元素添加一个类 并且添加这个类时下面添加子类的样式才会触发

例如这个点:

.sticky{
	padding-top: 40px;
		}
	/* 设置定位 */
.sticky .nav{
		position: fixed;
		left: 0;
		top: 0;
		width: 100%;
	}

需要仔细想想参透耶

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-11-12 19:30:07  更:2021-11-12 19:32:28 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/10 10:04:40-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码