`

JQ 点击跳转固定位置和对应目录的小标题高亮

阅读更多
<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta charset="UTF-8">
<link rel="stylesheet" href="base.css" />
<script type="text/javascript" src="jquery-1.10.1.min.js" ></script>
<style>
.t-container{}
.t-container h3{ line-height: 2em;}
.t-container p{ height: 200px; background-color: #808080;}
.fix-smallnav{ background: #f60; color: #fff; width: 120px; position: fixed; top: 200px; left: 0px;}
.fix-smallnav li{ padding-left: 8px; line-height: 2em;}
.fix-smallnav .fix-snav-hover{ font-weight: bold;  background-color: #0099FF;}
.fix-smallnav .fix-snav-hover:after{ content: "[在读]";}
</style>
</head>
<body>
<div style="height: 2000px;"></div>
<div class="t-container g-w" id="container">
	<h3>小标题一</h3>
	<p></p>
	<h3>小标题二</h3>
	<p></p>
	<h3>小标题三</h3>
	<p></p>
	<h3>小标题四</h3>
	<p></p>
	<h3>小标题五</h3>
	<p></p>
</div>
<div style="height: 2000px;"></div>
<ul class="fix-smallnav" id="smallnav"></ul>
<script>
$(function(){
	smallNav();
})
//点击跳转固定位置
function smallNav(){
	var subtit = $("#container h3");
	var smallnav = $("#smallnav");
	//获取文章的 h3 标签自动产生目录的小标题
	for(var i=0;i<subtit.size();i++){
		smallnav.append("<li>"+subtit.eq(i).text()+"</li>");
	}
	//点击目录的小标题跳转到对应的文章
	$("#smallnav li").click(function(){
		$('html, body').animate({  
            scrollTop: subtit.eq($(this).index()).offset().top-40
        },600); 
	});
}
//显示当前内容的目录
$(window).scroll(function(){
	var container = $("#container");
	var subtit = $("#container h3");
	var smallnav = $("#smallnav");
	var snavli = $("#smallnav li");
	var lbTop = 0;
	var winHeight = $(window).height();
	var scrollTop = $(window).scrollTop();
	var contBeginTop = subtit.eq(0).offset().top-scrollTop;
	var contEndTop = subtit.eq(0).offset().top+container.height()-scrollTop-winHeight;
	if(contBeginTop>(winHeight-300)){ //如果头部还不到内容部分 目录的小标题不高亮
		for(var i=0;i<subtit.size();i++){
			snavli.eq(i).removeClass("fix-snav-hover");
		}
	}else if((contEndTop+winHeight)<0){ //如果尾部还不到内容部分 目录的小标题不高亮
		for(var i=0;i<subtit.size();i++){
			snavli.eq(i).removeClass("fix-snav-hover");
		}
	}else{ //目录的小标题开始高亮
		for(var i=0;i<subtit.size();i++){
			if(i<subtit.size()-1){
				lbTop = subtit.eq(i+1).offset().top-scrollTop;
			}else{
				lbTop = subtit.eq(0).offset().top+container.height()-scrollTop;
			}
			if(lbTop>winHeight*0.26){
				snavli.eq(i).addClass("fix-snav-hover").siblings().removeClass("fix-snav-hover");
				break;
			}
		}
	}
}); 
</script>
</body>
</html>

  

效果图:

 

 

 

 

 

 

 

 

  • 大小: 38.3 KB
2
0
分享到:
评论

相关推荐

    JQ 点击目录跳转固定位置的最终版

    标题“JQ 点击目录跳转固定位置的最终版”指的是使用jQuery(简称JQ)实现的一个功能,即在网页中点击目录时,页面能够自动滚动到对应内容的特定位置。这个功能常见于长篇文档或教程的页面,帮助用户快速定位到他们...

    JQ 自动生成目录和点击跳转固定位置

    至于点击跳转固定位置,当用户点击目录项时,我们需要监听`click`事件,并使用`scrollTop`方法改变页面滚动位置,使得对应标题位于视口顶部。可以通过`$(window).scrollTop()`获取当前滚动位置,而`$(selector)....

    js或jq点击A链接跳转到百度并搜索关键词

    最近开发项目有这么一个需求 有一堆A链接关键词,点击后让他跳转到百度自动搜索此关键词,js写法如下,希望可以帮到各位

    JQ当前栏目高亮

    标题“JQ当前栏目高亮”指的是在网页设计中,使用jQuery(简称JQ)库实现导航栏中当前页面所属栏目的高亮显示效果。这种效果可以提升用户体验,让用户清楚地知道当前所在的位置。在网页设计中,导航栏通常包含多个...

    JQ 滚动高亮节点插件

    本篇文章将深入解析JQ滚动高亮节点插件的核心原理和实现方法。 首先,我们需要理解JQ的核心概念。jQuery是一个轻量级、高性能的JavaScript库,它简化了HTML文档遍历、事件处理、动画以及Ajax交互。其语法简洁,易于...

    jq导航栏点击滚动到对应位置 导航栏随页面滑动变化对应导航颜色-附件资源

    jq导航栏点击滚动到对应位置 导航栏随页面滑动变化对应导航颜色-附件资源

    jq实现点击图片弹出大图

    在网页设计中,jQuery(通常简称为jq)是一种广泛使用的JavaScript库,它简化了DOM操作、事件处理和动画效果。本教程将详细讲解如何使用jQuery实现点击图片后弹出大图的功能,这是一个常见的交互设计需求,能提升...

    JQ事件进度条自动跳转

    JQ事件进度条自动跳转JQ事件进度条自动跳转JQ事件进度条自动跳转JQ事件进度条自动跳转JQ事件进度条自动跳转JQ事件进度条自动跳转JQ事件进度条自动跳转JQ事件进度条自动跳转JQ事件进度条自动跳转JQ事件进度条自动跳转...

    JQ实现DIV大小、位置拖动调整源码

    在mousedown事件中,记录下鼠标初始位置和元素的初始位置;mousemove事件则会持续更新元素的位置,根据鼠标移动的距离来计算新的位置;最后,mouseup事件停止更新,结束拖动状态。同时,为了调整大小,还需要监听...

    Jq 点击滚动

    标题中的“Jq 点击滚动”指的是利用jQuery实现的一种交互效果,即当用户点击按钮时,图片会进行横向滚动。这种效果在网页设计中常见于轮播图、产品展示等场景,可以增强用户体验,使页面更具动态感。 描述中的...

    JQ 点击自动增加

    jQuery 点击按钮自动增加,和减少.

    表头固定及左侧边的固定(JQ)

    "表头固定及左侧边的固定(JQ)"这个主题聚焦于如何在用户滚动页面时保持表格的头部和左侧列始终保持可见,以便用户可以快速定位和理解数据。这种技术通常被称为冻结表头或冻结列,它在大数据表格中被广泛使用,因为...

    jQ固定背景滚动切换zip

    总的来说,"jQ固定背景滚动切换"是一个利用jQuery和CSS实现的网页设计技巧,它可以为网站添加动态的背景滚动效果。通过分析提供的代码示例和文档,开发者可以学习如何实现这样的功能,并将其应用于自己的网页设计中...

    jquery高亮插件(支持textarea内容高亮)

    这样,每当textarea内容变化时,页面中的对应关键词就会被高亮。 #### 自定义样式 默认情况下,插件使用`&lt;span&gt;`元素包裹关键词,并应用`class="highlight"`。你可以通过修改CSS来自定义高亮样式: ```css ....

    jQuery左侧固定导航栏点击滑动对应页面.zip

    jQuery左侧固定导航栏点击滑动对应页面,一般我们在我们的企业网站或者商城网站都会有在线客服,一般使用qq的形式来展示,或者以网页的形式,一般企业网站在导航栏就会直接显示联系我们!php中文网推荐下载!

    鼠标点击弹窗2_jq效果_

    使用`.show()`方法将隐藏的div显示出来,如果你想在点击其他地方时关闭弹窗,可以添加一个点击事件监听整个body,然后检查点击位置是否在弹窗内: ```javascript $(document).on('click', function(event) { if (!...

    JQ 智能判断固定导航条或侧边栏

    在IT行业中,网页开发是一项重要的技能,而JavaScript库如jQuery(简称JQ)极大地简化了DOM操作和动画效果。本文将深入探讨如何使用jQuery实现智能判断固定导航条或侧边栏的功能,这是一个常见且实用的设计元素,...

    JQuery固定表头 及左侧列

    JQuery固定表头 及左侧列

Global site tag (gtag.js) - Google Analytics