jQuery滚动监听导航栏(导航栏点击跳转对应界面并且变色)


<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Documenttitle>
	<script src="js/jquery-3.4.1.min.js">script>
	<script>
		$(function(){

			$('.daohang li').eq(0).click(function(){
				$('html, body').animate({  
					  scrollTop: $("#div1").offset().top  
					}, 200); 
			});


			$('.daohang li').eq(1).click(function(){
				$('html, body').animate({  
					  scrollTop: $("#div2").offset().top  
					}, 200); 
			});
			$('.daohang li').eq(2).click(function(){
				$('html, body').animate({  
					  scrollTop: $("#div3").offset().top  
					}, 200); 
			});
			$('.daohang li').eq(3).click(function(){
				$('html, body').animate({  
					  scrollTop: $("#div4").offset().top  
					}, 200); 
			});
			$('.daohang li').eq(4).click(function(){
				$('html, body').animate({  
					  scrollTop: $("#div5").offset().top  
					}, 200); 
			});
			 $(window).scroll(function(){
			 	if($(window).scrollTop()<588 && $(window).scrollTop()>=0){
				 $('.daohang li').eq(0).css({background:'red'})
				// console.log(11111);
			}else{
				 $('.daohang li').eq(0).css({background:'pink'})
			}

			if($(window).scrollTop() >=588 && $(window).scrollTop() < 1156){
				 $('.daohang li').eq(1).css({background:'red'})
				// console.log(11111);
			}else{
				 $('.daohang li').eq(1).css({background:'pink'})
			}

			if($(window).scrollTop() >=1156 && $(window).scrollTop() < 1723){
				 $('.daohang li').eq(2).css({background:'red'})
				// console.log(11111);
			}else{
				 $('.daohang li').eq(2).css({background:'pink'})
			}
			if($(window).scrollTop() >=1723 && $(window).scrollTop() < 2291){
				 $('.daohang li').eq(3).css({background:'red'})
				// console.log(11111);
			}else{
				 $('.daohang li').eq(3).css({background:'pink'})
			}
			if($(window).scrollTop() >=2291 ){
				 $('.daohang li').eq(4).css({background:'red'})
				// console.log(11111);
			}else{
				 $('.daohang li').eq(4).css({background:'pink'})
			}
			 });

			
			console.log($(window).scrollTop());
			// console.log($(window).scrollHeight());


		})
	script>
	<style>
		body>div{
			width: 600px;
			margin-bottom: 250px;

		}
		.daohang ul{
			list-style: none;
			position: fixed;
			left: 1000px;
			top: 100px;

		}
		.daohang li{
			width: 80px;
			height: 50px;
			background-color: pink;
			border: 1px solid black;
			text-align: center;
			line-height: 50px;
			
		}
	style>

head>
<body>
	<div id="div1">
		<h1>第一个标题h1>
		<div >有粉丝给周杰伦的ins评论,表示自己当了妈妈了,还要熬夜给他刷数据,周杰伦称赞对方很厉害。对于粉丝们忙着给他做数据这件事,他也的确是知道的,还傲娇表示“宝宝不说”。他的这番回复弄得歌迷们非常感动,原来大家做的这些他都是知道的。这样一来,数据不数据的先放在一边,倒是偶像懂自己的心情才是最可贵的。有粉丝给周杰伦的ins评论,表示自己当了妈妈了,还要熬夜给他刷数据,周杰伦称赞对方很厉害。对于粉丝们忙着给他做数据这件事,他也的确是知道的,还傲娇表示“宝宝不说”。他的这番回复弄得歌迷们非常感动,原来大家做的这些他都是知道的。这样一来,数据不数据的先放在一边,倒是偶像懂自己的心情才是最可贵的。有粉丝给周杰伦的ins评论,表示自己当了妈妈了,还要熬夜给他刷数据,周杰伦称赞对方很厉害。对于粉丝们忙着给他做数据这件事,他也的确是知道的,还傲娇表示“宝宝不说”。他的这番回复弄得歌迷们非常感动,原来大家做的这些他都是知道的。这样一来,数据不数据的先放在一边,倒是偶像懂自己的心情才是最可贵的。div>
		
	div>
	<div id="div2">
		<h1>第二个标题h1>
		<div >有粉丝给周杰伦的ins评论,表示自己当了妈妈了,还要熬夜给他刷数据,周杰伦称赞对方很厉害。对于粉丝们忙着给他做数据这件事,他也的确是知道的,还傲娇表示“宝宝不说”。他的这番回复弄得歌迷们非常感动,原来大家做的这些他都是知道的。这样一来,数据不数据的先放在一边,倒是偶像懂自己的心情才是最可贵的。有粉丝给周杰伦的ins评论,表示自己当了妈妈了,还要熬夜给他刷数据,周杰伦称赞对方很厉害。对于粉丝们忙着给他做数据这件事,他也的确是知道的,还傲娇表示“宝宝不说”。他的这番回复弄得歌迷们非常感动,原来大家做的这些他都是知道的。这样一来,数据不数据的先放在一边,倒是偶像懂自己的心情才是最可贵的。有粉丝给周杰伦的ins评论,表示自己当了妈妈了,还要熬夜给他刷数据,周杰伦称赞对方很厉害。对于粉丝们忙着给他做数据这件事,他也的确是知道的,还傲娇表示“宝宝不说”。他的这番回复弄得歌迷们非常感动,原来大家做的这些他都是知道的。这样一来,数据不数据的先放在一边,倒是偶像懂自己的心情才是最可贵的。div>
	div>
	<div id="div3">
		<h1>第三个标题h1>
		<div>有粉丝给周杰伦的ins评论,表示自己当了妈妈了,还要熬夜给他刷数据,周杰伦称赞对方很厉害。对于粉丝们忙着给他做数据这件事,他也的确是知道的,还傲娇表示“宝宝不说”。他的这番回复弄得歌迷们非常感动,原来大家做的这些他都是知道的。这样一来,数据不数据的先放在一边,倒是偶像懂自己的心情才是最可贵的。有粉丝给周杰伦的ins评论,表示自己当了妈妈了,还要熬夜给他刷数据,周杰伦称赞对方很厉害。对于粉丝们忙着给他做数据这件事,他也的确是知道的,还傲娇表示“宝宝不说”。他的这番回复弄得歌迷们非常感动,原来大家做的这些他都是知道的。这样一来,数据不数据的先放在一边,倒是偶像懂自己的心情才是最可贵的。有粉丝给周杰伦的ins评论,表示自己当了妈妈了,还要熬夜给他刷数据,周杰伦称赞对方很厉害。对于粉丝们忙着给他做数据这件事,他也的确是知道的,还傲娇表示“宝宝不说”。他的这番回复弄得歌迷们非常感动,原来大家做的这些他都是知道的。这样一来,数据不数据的先放在一边,倒是偶像懂自己的心情才是最可贵的。div>
	div>
	<div id="div4">
		<h1>第四个标题h1>
		<div>有粉丝给周杰伦的ins评论,表示自己当了妈妈了,还要熬夜给他刷数据,周杰伦称赞对方很厉害。对于粉丝们忙着给他做数据这件事,他也的确是知道的,还傲娇表示“宝宝不说”。他的这番回复弄得歌迷们非常感动,原来大家做的这些他都是知道的。这样一来,数据不数据的先放在一边,倒是偶像懂自己的心情才是最可贵的。有粉丝给周杰伦的ins评论,表示自己当了妈妈了,还要熬夜给他刷数据,周杰伦称赞对方很厉害。对于粉丝们忙着给他做数据这件事,他也的确是知道的,还傲娇表示“宝宝不说”。他的这番回复弄得歌迷们非常感动,原来大家做的这些他都是知道的。这样一来,数据不数据的先放在一边,倒是偶像懂自己的心情才是最可贵的。有粉丝给周杰伦的ins评论,表示自己当了妈妈了,还要熬夜给他刷数据,周杰伦称赞对方很厉害。对于粉丝们忙着给他做数据这件事,他也的确是知道的,还傲娇表示“宝宝不说”。他的这番回复弄得歌迷们非常感动,原来大家做的这些他都是知道的。这样一来,数据不数据的先放在一边,倒是偶像懂自己的心情才是最可贵的。div>
	div>
	<div id="div5">
		<h1>第五个标题h1>
		<div>有粉丝给周杰伦的ins评论,表示自己当了妈妈了,还要熬夜给他刷数据,周杰伦称赞对方很厉害。对于粉丝们忙着给他做数据这件事,他也的确是知道的,还傲娇表示“宝宝不说”。他的这番回复弄得歌迷们非常感动,原来大家做的这些他都是知道的。这样一来,数据不数据的先放在一边,倒是偶像懂自己的心情才是最可贵的。有粉丝给周杰伦的ins评论,表示自己当了妈妈了,还要熬夜给他刷数据,周杰伦称赞对方很厉害。对于粉丝们忙着给他做数据这件事,他也的确是知道的,还傲娇表示“宝宝不说”。他的这番回复弄得歌迷们非常感动,原来大家做的这些他都是知道的。这样一来,数据不数据的先放在一边,倒是偶像懂自己的心情才是最可贵的。有粉丝给周杰伦的ins评论,表示自己当了妈妈了,还要熬夜给他刷数据,周杰伦称赞对方很厉害。对于粉丝们忙着给他做数据这件事,他也的确是知道的,还傲娇表示“宝宝不说”。他的这番回复弄得歌迷们非常感动,原来大家做的这些他都是知道的。这样一来,数据不数据的先放在一边,倒是偶像懂自己的心情才是最可贵的。div>
	div>
	<div class="daohang">
		<ul>
			<li>新闻li>
			<li>娱乐li>
			<li>音乐li>
			<li>咨询li>
			<li>返回顶部li>
		ul>
	div>
body>
html>

首先我们先写5个相同的div 尽量内容多一些这样好观察.
然后用ul写一个导航 用positon:fixed固定在浏览器右边 并且为html页面设定样式

用jQuery设置点击跳转:

$('html, body').animate({  
					  scrollTop: $("#div1").offset().top  
					}, 200);

设置跳转指定位置,$()内填入id值:

$().offset().top; 

对页面滚动条进行监听:

  $(window).scroll(function(event){});

设置滚动条跳转到具体位置(本文中运用的是跳转指定位置):

$(window).scrollTop(offset)

设置完点击跳转之后,设定在一定位置导航栏变色:

可以打印出滚动条在某位置时候的值,从此来获取每个div的滚动条的值:

console.log($(window).scrollTop()); 

jQuery滚动监听导航栏(导航栏点击跳转对应界面并且变色)_第1张图片(如果没出现或者一直一个值时,在你需要的位置刷新就会打印出新的)

对页面滚动条的监听,这要在页面加载时使用:

 $(window).scroll(function(){});

然后通过我们获取的每个div的滚动条的值就可以进行设定样式了:

if($(window).scrollTop()<588 && $(window).scrollTop()>=0){
				 $('.daohang li').eq(0).css({background:'red'})
				// console.log(11111);
			}else{
				 $('.daohang li').eq(0).css({background:'pink'})
			}

这样就完成了一个简单的滚动监听导航栏,在今后项目中,可以多一些样式,此文为jQuery方法.

你可能感兴趣的:(jquery)