html实现吸顶效果的几种方式

页面下拉之前是这样的:
在这里插入图片描述想实现滑动滚动条往下的时候,导航保持在顶部的效果有几种方式实现?
在这里插入图片描述

一:使用jquery实现

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8" />
	<title>html实现吸顶效果的几种方式</title>
</head>
<!--页面样式  start -->
<style>
	*{
		margin: 0;
		padding: 0;
		list-style: none;
		text-decoration: none;
	}
	body{
		background: #f3f0eb;
	}
	.header_warp{
		width: 100%;
		min-width: 1180px;
		/*position: fixed;
        top: 0px;
        z-index: 9999;*/


	}
	.header_frist{
		width: 100%;
		min-width: 1180px;
		background:#2b2b2d;
		/*background: orange;*/
	}
	.header_first_content{
		width: 1180px;
		height: 70px;
		/*	background: yellow;*/
		margin: 0 auto;
	}
	.header_search{
		width: 285px;
		height: 40px;
		padding: 15px 0;
		/*background:green;*/
		margin: 0 auto;

	}
	.header_search_warp{
		width: 285px;
		border-radius: 20px;
		background:white;
		height: 40px;

		/*padding-top:5px;
        text-align: center;*/
	}
	.serch_text{
		width: 195px;
		height: 20px;
		border: 0;
		padding: 10px;
		margin-left:20px ;
		box-sizing:content-box;
		float: left;

	}
	.serch_sum{
		height: 40px;
		width: 50px;

		border-radius:0 20px 20px 0 ;
		border: 0;
		/*	margin-left: 5px;*/
		background: url(../img/min.png)no-repeat -190px -64px;
		background-color: orange;
	}
	.header_sendm{
		width:100% ;
		min-width: 1180px;
		height: 60px;
		background:white;

	}
	.header_lists{
		width: 1180px;
		height: 60px;
		/*	background: darkgoldenrod;*/
		margin: 0 auto;
		/*	border: 3px solid green;*/
	}
	.header_sendm .header_lists li{
		float: left;
		margin: 15px;
		font: 18px/30px;
		/*text-align: center;*/
	}
	.header_sendm .header_lists li a{
		color: black;


	}
	.header_sendm .header_lists li a:hover{
		color: red;
	}
	.clear-fix::after{
		content: "";
		width: 0;
		height: 0;
	}
</style>
<!--页面样式  end -->

<!--吸顶效果样式 start-->
<style>
	.fix{
		position:fixed;
		left:0;
		top:0;
		width:100%;
	}

	.nav2{
		margin-top: 60px;
	}
</style>
<!--吸顶效果样式 end-->

<body>
<header class="header_warp">

	<div class="header_frist">
		<div class="header_first_content">
			<div class="header_search">
				<form action="">
					<div class="header_search_warp">
						<input type="text" name="" id="" value="" class="serch_text"/>
						<input type="submit" name="" id="" value="" class="serch_sum"/>
					</div>
				</form>
			</div>
		</div>
	</div>

	<nav class="header_sendm" id="nav">
		<ul class="header_lists clear-fix">
			<li><a href="#">首页</a></li>
			<li><a href="#">游戏中心</a></li>
			<li><a href="#">游戏礼包</a></li>
			<li><a href="#">游戏开测</a></li>
			<li><a href="#">坛友新闻</a></li>
			<li><a href="#">手游排行</a></li>
			<li><a href="#">游戏专区</a></li>
			<li><a href="#">手游攻略</a></li>
			<li><a href="#">坦克评测</a></li>
			<li><a href="#">游戏视频</a></li>
			<li><a href="#">游戏规划</a></li>
		</ul>
	</nav>
</header>


<div id="body" style="height: 1000px;">
2<br>
2<br>
1<br>
1<br>
1<br>
1<br>
1<br>
1<br>
1
</div>



</body>

<script src="https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
<script>
	$(function(){
		var navBar = $("#nav");
		var navBar2 = $("#nav2");
		var titleTop = navBar.offset().top;

		$(window).scroll(function(){
			var btop = $(window).scrollTop();
			if (btop > titleTop) {
				navBar.addClass('fix');
				navBar2.addClass('nav2');
			} else {
				navBar.removeClass('fix');
				navBar2.removeClass('nav2');
			}
		})
	})
</script>


</html>

二、仅css,搜索框+导航fixed

	.header_warp{
		position:fixed;
		left:0;
		top:0;
		width:100%;

	}

	#body{
		margin-top: 130px;
	}

这个不好的一点是 搜索框 也会固定在顶部,并且需要注意的是内容区域要添加个 margin-top 吸顶部分的高度。
在这里插入图片描述

三、内容部分 absolute,导航 fixed

可以看到header样式中有个 z-index=1 ,是因为如果不加高导航的层级,在内容部分下滑展示的时候会在导航上面划过。

	header{
		position:fixed;
		left:0;
		top:0;
		width:100%;
		z-index: 1;
	}

	#body{
		position: absolute;
		left:0;
		width:100%;
		top: 130px;
	}

在这里插入图片描述

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Jetpack Compose 是一种用于构建 Android UI 的现代工具包。要实现吸顶效果,可以使用 Jetpack Compose 的 ConstraintLayout 组件。 首先,在你的布局文件中引入 ConstraintLayout 组件。然后,在需要实现吸顶效果的视图组件前方放置一个占位符组件,作为吸顶效果的起点。 接下来,使用 ConstraintLayout 的 createModifier 函数来创建一个修饰符(Modifier),并将其应用到需要实现吸顶效果的视图组件上。在修饰符中,通过调用该组件的位置限制函数来设置视图组件的约束条件。 例如,使用 Modifier.offset() 函数将吸顶组件固定在布局的顶部: ```kotlin val modifier = Modifier.constrainAs(view) { top.linkTo(parent.top) } ``` 或者,使用 Modifier.padding() 函数来设置视图组件距离父布局顶部的间距: ```kotlin val modifier = Modifier.padding(top = offset) ``` 其中,offset 可以是一个动态的数值,用于实现吸顶效果的变化。你可以根据滚动位置来调整 offset 的值,实现吸顶视图随滚动而变化的效果。 最后,将该修饰符应用到你的视图组件上: ```kotlin Box( modifier = Modifier .fillMaxSize() .wrapContentSize() .offset { IntOffset(0, offset) } ) { // 吸顶视图组件 } ``` 这样,你就可以实现吸顶效果了。通过调整约束条件或距离顶部的间距,你可以自定义吸顶效果的具体表现。注意,吸顶效果通常与滚动视图组件(如 ListView 或 ScrollView)结合使用,以便根据滚动位置来动态调整吸顶视图的位置和显示状态。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值