效果如下:点击某个导航后,会跳转到本页面a标签锚点位置。
PC端a标签锚点href="#id"方式,在移动端或者angular下不管用,解决方法如下,待探究原因,欢迎大佬帮忙解释
HTML代码:使用bootstrap导航
<nav id="top-nav" class="navbar navbar-default" role="navigation" style="position: fixed;top: 0;width: 100%;">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#menu">
<span class="sr-only">展开导航</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="#">问诊单</a>
</div>
<div class="collapse navbar-collapse" id="menu">
<ul class="nav navbar-nav">
<li link="div1" class="active" ng-click="go_menu($event)"><a href="#">第一部分个人基本信息</a></li>
<li link="div2" ng-click="go_menu($event)"><a href="#">第二部分家族和个人疾病史</a></li>
<li link="div3" ng-click="go_menu($event)"><a href="#">第三部分个人疾病史治疗情况</a></li>
<li link="div4" ng-click="go_menu($event)"><a href="#">第四部分生活习惯</a></li>
<li link="div5" ng-click="go_menu($event)"><a href="#">第五部分身体症状</a></li>
</ul>
</div>
</nav>
<div id="div1" class="questionnaire-new">这是第一部分内容</div>
<div id="div2" class="questionnaire-new">这是第二部分内容</div>
<div id="div3" class="questionnaire-new">这是第三部分内容</div>
<div id="div4" class="questionnaire-new">这是第四部分内容</div>
<div id="div5" class="questionnaire-new">这是第五部分内容</div>
JS代码:
//angular框架下
$scope.go_menu=function(event){
//切换导航菜单选中背景色
$(".nav").find('li').removeClass('active');
$(event.currentTarget).addClass('active');
//隐藏dropdown菜单
$("#menu").removeClass('in');
//获取模块到顶部的距离
var id = $(event.currentTarget).attr("link");
//跳转到对应id
document.getElementById(id).scrollIntoView();
}