jQuery实现电梯导航功能案例

jQuery实现电梯导航功能案例

在页面中,一般都会有一个侧边导航栏,点击选项页面会跳转到对应的区域;或者滑动鼠标页面到到一个分类的区域侧边导航栏的选项也会变。

  1. 隐藏导航,移动一定区域后,显示导航
  2. 通过点击导航跳转到相应区域
  3. 一键返回页面顶部
    在这里插入图片描述
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title>电梯导航案例</title>
		<link rel="stylesheet" type="text/css" href="css/public.css"/>
		<script src="js/jquery-3.6.0.js" type="text/javascript" charset="utf-8"></script>
		<style type="text/css">
			.floor{
				margin: 300px auto;
				width: 800px;
				
			}
			.floor img{
				display: block;
				margin-bottom: 100px;
			}
			.fixedtool {
			    position: fixed;
			    top: 250px;
			    left: 150px;
			    width: 100px;
			    background-color: #95ecde;
				display: none;
			}
			.fixedtool li {
			    height: 40px;
			    line-height: 40px;
			    text-align: center;
			    font-size: 17px;
			    border-bottom: 2px solid #818181;
			    cursor: pointer;
			}
			.back{
				height: 40px;
				line-height: 40px;
				text-align: center;
				font-size: 17px;
				cursor: pointer;
			}
			.fixedtool .current {
			    background-color: #2a70cb;
			    color: #fff;
			}
		</style>
	</head>
	<body>
		<div class="floor">
			<div class="first w">
				<img src="images/keai.jpg" width="800" alt="">
			</div>
			<div class="second w">
				<img src="images/扇宝.jpg" width="800">
			</div>
			<div class="third w">
				<img src="images/月兮.jpg" width="800">
			</div>
			<div class="four w">
				<img src="images/血红叶.jpg" width="800">
			</div>
			<div class="five w">
				<img src="images/汉服.jpg" width="800">
			</div>
		</div>
		<div class="fixedtool">
		    <ul>
		        <li class="current">可爱初音</li>
		        <li>扇宝</li>
		        <li>搓澡球</li>
		        <li>雪花枫叶</li>
				<li>汉服少女</li>
				<div class="back">返回顶部</div>
		    </ul>
		</div>
		<script type="text/javascript">
			$(function(){
				//节流阀, 互斥锁
				var flag = true;
				//隐藏导航
				var boxTop = $(".fixedtool").offset().top;
				//使其在下面位置刷新的时候,导航栏同样出现
				toggleTool();
				function toggleTool(){
					if ($(document).scrollTop() >= 350){
						$(".fixedtool").fadeIn();
					}else {
						$(".fixedtool").fadeOut();
					};
				}
				
				$(window).scroll(function(){
					// console.info($(document).scrollTop());  显示与文档顶部距离
					toggleTool();
					// 3. 当页面滚动到某个内容区域的时候,电梯导航小li相应添加和删除current类名
					if(flag){
						$(".floor .w").each(function(i,ele){
							if($(document).scrollTop() >= $(ele).offset().top){
								// console.info(i);
								$(".fixedtool li").eq(i).addClass("current").siblings().removeClass("current");
							}
						})
					}
				});
				
				// 2、 通过点击电梯页面里面的选项滚动到相应内容区域
				$(".fixedtool li").click(function(){
					//节流阀, 互斥锁
					flag = false;
					console.info($(this).index());
					// console.info($(".floor .w"));
					//每次点击小i,可以计算页面要的位置
					//选出对应索引号的内容区盒子,计算它的.offset().top
					var current = $(".floor .w").eq($(this).index()).offset().top;
					//页面滚动效果
					$("body,html").stop().animate({
						scrollTop:current,
					},function() {
						flag = true;
					});
					//点击之后,让当前li 添加current类名,兄弟节点移除current类名
					$(this).addClass("current").siblings().removeClass("current");
				})
				// 返回顶部
				$(".back").click(function(){
					// $(document).scrollTop(0); 直接返回顶部
					//animate()动画返回
					// $(this).addClass("current");
					$("body,html").stop().animate({
						scrollTop:0,
					});
					
					// $(document).stop().animate({
					// 	scrollTop:0,
					// }); 不能够是文档 而是 html 和 body元素做动画
				})
			})
		</script>
	</body>
</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

无良小老板

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

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

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

打赏作者

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

抵扣说明:

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

余额充值