【发布时间】:2015-12-08 14:36:51
【问题描述】:
我想做的是为 scrollspy 设置偏移量,并让它平滑过渡到每个部分。我宁愿不使用插件或数据属性(如果数据属性是必要的,那么好的),但我想要一个采用下面的 javascript 并添加平滑动画滚动效果的解决方案。如果可能的话,jQuery 解决方案。
Scrollspy 有效,偏移量适用于以下代码: 可能有人可以获取此代码并将其添加到其中以设置平滑过渡?
var offset = 60;
$('.navbar li a').click(function(event) {
event.preventDefault();
$($(this).attr('href'))[0].scrollIntoView();
scrollBy(0, -offset);
});
我的 HTML/CSS 代码设置如下:
我有一个 .main-content 类的容器 div。这是在 css 中设置的,其边距从我的页眉和页脚偏移,页眉和页脚是固定的顶部和底部,每个高度为 60 像素。
<div class="main-content"></div> 的 CSS 如下:
.main-content {position: realtive; width: 100%; height: 100%; margin: 60px 0 60px 0;}
我在 .main-content 中有部分,每个部分都有一个 id="...",HTML 看起来像这样。我已删除所有内容,以便您可以清楚地看到这些部分。
<div class="main-content" data-spy="scroll" data-target="#dl-menu">
<section id="top" class="top">
...
</section>
<section id="services" class="services">
...
</section>
<section id="portfolio" class="portfolio">
...
</section>
<section id="pricing" class="pricing">
...
</section>
<section id="faq" class="faq">
...
</section>
<section id="quote" class="quote">
...
</section>
</div>
我使用的菜单结构如下:
<div id="dl-menu" class="dl-menuwrapper">
<button class="dl-trigger">Open Menu</button>
<ul class="dl-menu">
<li><a href="#top">BACK TO TOP</a></li>
<li><a href="#services">OUR SERVICES</a></li>
<li><a href="#portfolio">OUR PORTFOLIO</a></li>
<li><a href="#faq">FAQ</a></li>
<li><a href="#quote">GET YOUR QUOTE</a></li>
</ul>
</div>
我对 Jquery/JavaScript 很陌生,并且已经尝试了我能找到的所有解决方案,但没有找到适合我的布局的解决方案。如果有人能帮我解决这个问题,我将不胜感激!
【问题讨论】:
-
你能给我们提供一个 JsFiddle / Codepen 吗?我很乐意试一试。
-
是的,给我一些设置。
-
这里是小提琴 - jsfiddle.net/72dygskb/13
标签: javascript jquery twitter-bootstrap