js实现目录链接,内容跟着目录滚动显示

本文介绍如何使用JavaScript实现在目录点击时,页面内容自动滚动到相应位置,实现目录与内容的联动效果。通过监听目录点击事件,计算目标内容的位置,并使用浏览器的scrollTo方法平滑滚动至目标区域。
<script>
require(["jquery", "bootstrap"], function($) {
$(function() {
$('.left').height(($('body').height() > $(window).height()) ? $('body').height() : $(window).height());
});
var goTo = $(".con");
var guide = $(".sideGuide");
var guideLi = $(".sideGuide li");
var index = 0;
var direct = 0;
var goToFun = function() {
var len = document.getElementById("box"+index).offsetTop-30; //获取div层到页面顶部的高度
direct = 0;
if (index < 0) {
index = 0;
return;
}
if (index >= guideLi.size()) {
index = guideLi.size() - 1;
return;
}
$("html,.tree").stop().animate({scrollTop: len}, 300, "swing", function() {
direct = 0;
});
guideLi.removeClass("on").eq(index).addClass("on");
}
guideLi.each(function(i) {
$(this).click(function() {
index = guideLi.index($(this));
goToFun();
})
});
/* 滚轮事件 */
var scrollFunc = function(e) {
e = e || window.event;
if (e.wheelDelta) {
direct += (-e.wheelDelta / 120);
} else if (e.detail) {
direct += e.detail / 3;
}
var first=document.getElementById("first").val();
if (direct >= first) {
goToFun(index++);
}
if (direct <= 0-first) {
goToFun(index--);
}
};
});
</script>

<style>

            .return{padding-top:0.5em;}
            .title{text-align:center;font-weight:bold;padding-bottom:1em;border-bottom:2px solid #eee;line-height:1em;}
            .extend{text-align:center;color:#666;font-size:1.6em;line-height:3em;} 
            .content{line-height:2.2em;}
            .content table{width:100%}
            .left{background-color:#fff;}     
            .left .desc{color:#666;margin:2em 0;}
            .left .list{line-height:3em;}
            .left .list li{border-top: 1px solid #E4E1E1;}
            .href{cursor: pointer;}
            .lh2{line-height:2.4em;}
            .lh2 li{border-top: 1px solid #eee;}
            .tree{max-height:1000px;overflow-y: scroll;border: 1px solid #DDD;border-top: 0;border-left: 0;margin-top: 20px;}
            .sub-title{margin:2em auto 1em;text-align: center;font-size: 20px;}
            .on a{color:#000;font-weight: bold;}
        
</style>

<body style=" position:fixed;" ondragstart="return false" onselectstart="return false" onkeypress="return false" oncontextmenu="return false">
<div class="container-fluid">
<div class="text-right return">
<a class="btn btn-default" href="javascript:history.back()">返回</a>
</div>
<h2 class="title">《日常管理机制》</h2>
<div class="row">
<div class="col-sm-3 hidden-xs left" style="height: 1193px;">
<div class="container-fluid">
<h3>目录</h3>
<div class="sideGuide">
<ul class="list-unstyled lh2">
<li>
<span class="text-muted">
<a href="javascript:void(0)">第一章 总则</a>
</span>
</li>
<li>
<span class="text-muted">
<a href="javascript:void(0)">第二章 分校运营管理规定</a>
</span>
</li>
<li>
<span class="text-muted">
<a href="javascript:void(0)">第三章 分校人员管理规定</a>
</span>
</li>
<li>
<span class="text-muted">
<a href="javascript:void(0)">第四章 品牌管理规定</a>
</span>
</li>
<li>
<span class="text-muted">
<a href="javascript:void(0)">第五章 分校宣传管理规定</a>
</span>
</li>
<li>
<span class="text-muted">
<a href="javascript:void(0)">第六章 分校咨询管理规定</a>
</span>
</li>
<li>
<span class="text-muted">
<a href="javascript:void(0)">第七章 分校教学管理规定</a>
</span>
</li>
<li>
<span class="text-muted">
<a href="javascript:void(0)">第八章 增设分校的管理规定</a>
</span>
</li>
<li></li>
</ul>
</div>
</div>
</div>
<div class="col-sm-9">
<div class="container-fluid" style="background-color:#f5f5f5">
<div class="tree mb40">
<div id="box0" class="con">
<div id="box1" class="con">
<div id="box2" class="con">
<div id="box3" class="con">
<div id="box4" class="con">
<div id="box5" class="con">
<div id="box6" class="con">
<div id="box7" class="con">
</div>
<input id="first" type="hidden" value="8">
</div>
</div>
</div>
</div>
</body>

【效果预览】


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值