思路
思路:给页面设置一个滚动事件,时刻监视页面的scrollTop的值
如果这个值大于第一部分的高度,就设置第二部分为固定定位
如果这个值小于第一部分的高度,就设置第二部分的定位还原
知识点
//scrollLeft() 表示获取或者设置元素内容被卷曲出去的宽度.
//scrollTop() 表示获取或者设置元素内容被卷曲出去的高度
源代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<style type="text/css">
* {
margin: 0;
padding: 0;
}
.top, .nav {
width: 1423px;
margin: 0 auto;
}
.main {
width: 1000px;
margin: 10px auto;
}
img {
display: block;
vertical-align: middle;
}
</style>
</head>
<script src="../jquery-3.4.1.min.js"></script>
<body>
<div class="top">
<img src="../../Jquery学习源代码/第三章资料/04-代码/images/top.png"/>
</div>
<div class="nav">
<img src="../../Jquery学习源代码/第三章资料/04-代码/images/nav.png"/>
</div>
<div class="main">
<img src="../../Jquery学习源代码/第三章资料/04-代码/images/main.png"/>
</div>
</body>
</html>
<script>
$(function(){
var topHeight = $(' .top').height();
var navHeight = $(' .nav').height();
$(window).scroll(function(){
var scrollTopValue = $(window).scrollTop();
if(scrollTopValue >= topHeight){
$(' .nav').css({
position:'fixed',
top:0,
left:0
});
$('.main').css({
marginTop:navHeight+10
});
}else{
$(' .nav').css({
position:'static',
top:0,
left:0
});
$(' .main').css({
marginTop:10
});
}
});
});
</script>