我有这个推特引导代码
<div class='navbar navbar-fixed-top'>
<div class='navbar-inner'>
<div class='container'>
<a class='btn btn-navbar' data-target='.nav-collapse' data-toggle='collapse'>
<span class='icon-bar'></span>
<span class='icon-bar'></span>
<span class='icon-bar'></span>
</a>
<div class='nav-collapse'>
<ul class='nav'>
<li class='active'>
<a href='some_url'>My Home</a>
</li>
<li>
<a href='some_url'>Option 1 </a>
</li>
<li>
<a href='some_url'>Another option</a>
</li>
<li>
<a href='some_url'>Another option</a>
</li>
</ul>
</div>
</div>
</div>
</div>
但是当我查看页面的开始部分时,导航栏挡住了页面顶部附近的一些内容。有什么想法,如何使它下推其余的内容较低时,页面的顶部被查看,以便内容不被导航栏阻挡?
这里会出现两个问题:
页面加载(内容隐藏)
像这样的内部链接会滚动到顶部,并被导航栏隐藏:
<导航>…< /导航 > <!——70像素高——>
<a href="#hello">hello</a> <!——点击向下滚动——>
<hr style="margin: 100px">
<h1 id="hello">World</h1> <!——帮助!我隐藏了70像素!-->
引导4 w/内部页面链接
为了修复1),正如Martijn Burger上面所说,bootstrap v4 starter模板css使用:
body {
padding-top: 5rem;
}
要解决这个问题,请检查一下。这段代码大部分工作(但不是第二次点击相同的哈希):
window.addEventListener("hashchange", function() { scrollBy(0, -70) })
这段代码用jQuery动画链接(不是slim jQuery):
// inline theme global code here
$(document).ready(function() {
var body = $('html,body'), NAVBAR_HEIGHT = 70;
function smoothScrollingTo(target) {
if($(target)) body.animate({scrollTop:$(target).offset().top - NAVBAR_HEIGHT}, 500);
}
$('a[href*=\\#]').on('click', function(event){
event.preventDefault();
smoothScrollingTo(this.hash);
});
$(document).ready(function(){
smoothScrollingTo(location.hash);
});
})
这里会出现两个问题:
页面加载(内容隐藏)
像这样的内部链接会滚动到顶部,并被导航栏隐藏:
<导航>…< /导航 > <!——70像素高——>
<a href="#hello">hello</a> <!——点击向下滚动——>
<hr style="margin: 100px">
<h1 id="hello">World</h1> <!——帮助!我隐藏了70像素!-->
引导4 w/内部页面链接
为了修复1),正如Martijn Burger上面所说,bootstrap v4 starter模板css使用:
body {
padding-top: 5rem;
}
要解决这个问题,请检查一下。这段代码大部分工作(但不是第二次点击相同的哈希):
window.addEventListener("hashchange", function() { scrollBy(0, -70) })
这段代码用jQuery动画链接(不是slim jQuery):
// inline theme global code here
$(document).ready(function() {
var body = $('html,body'), NAVBAR_HEIGHT = 70;
function smoothScrollingTo(target) {
if($(target)) body.animate({scrollTop:$(target).offset().top - NAVBAR_HEIGHT}, 500);
}
$('a[href*=\\#]').on('click', function(event){
event.preventDefault();
smoothScrollingTo(this.hash);
});
$(document).ready(function(){
smoothScrollingTo(location.hash);
});
})