Scrollspy 导航栏 fullPage.js
Scrollspy navbar fullPage.js
所以我正在使用 fullPage.js 构建一个站点,但是我想使用我制作的自定义导航栏。
我希望导航栏按钮在您滚动到相应部分时发生变化(即,如果我滚动到联系人部分,联系人按钮会在导航栏中亮起),就像 bootstrap.
中的 scrollspy
我该怎么做?
非常感谢!我已经用谷歌搜索了几个小时,但就是找不到答案。
编辑:对于可能 运行 遇到此问题的任何人,这就是我所做的
我向包含我的导航栏项目的 ul 添加了一个 id,并添加了
data-menuanchor="your anchor goes here"
然后,在全页js初始化中,添加了菜单选项
`$('#fullpage').fullpage({
anchors: ['firstPage', 'secondPage', 'thirdPage', 'fourthPage',
'lastPage'],
menu: '#id of your navbar ul'});`
然后我进入 fullpagejs css 文件并编辑这部分以在该部分处于活动状态时显示我想要的样子
fp-nav ul li a.active span,
.fp-slidesNav ul li a.active span,
fp-nav ul li:hover a.active span,
.fp-slidesNav ul li:hover a.active span{
background-color: #3b8d37;
color:white;
}
感谢@Kasabucki Alexandr 快速而有用的回复
您可以查看 fullPage.js 的文档。选项:菜单。
<ul id="myMenu">
<li data-menuanchor="firstPage" class="active"><a href="#firstPage">Первый раздел</a></li>
<li data-menuanchor="secondPage"><a href="#secondPage">Второй раздел</a></li>
<li data-menuanchor="thirdPage"><a href="#thirdPage">Третий раздел</a></li>
<li data-menuanchor="fourthPage"><a href="#fourthPage">Четвёртый раздел</a></li>
$('#fullpage').fullpage({
anchors: ['firstPage', 'secondPage', 'thirdPage', 'fourthPage', 'lastPage'],
menu: '#myMenu'});
看来你在找
您也可以使用 afterSlideLoad 回调:
$('#fullpage').fullpage({
anchors: ['firstPage', 'secondPage', 'thirdPage', 'fourthPage', 'lastPage'],
afterSlideLoad: function( anchorLink, index, slideAnchor, slideIndex){
var loadedSlide = $(this);
//первый слайд второго раздела
if(anchorLink == 'secondPage' && slideIndex == 1){
alert("Первый слайд загружен");
}
//второй слайд второго раздела (supposing #secondSlide is the
//привязка для второго раздела
if(index == 2 && slideIndex == 'secondSlide'){
alert("Второй слайд загружен");
}
}
});
所以我正在使用 fullPage.js 构建一个站点,但是我想使用我制作的自定义导航栏。 我希望导航栏按钮在您滚动到相应部分时发生变化(即,如果我滚动到联系人部分,联系人按钮会在导航栏中亮起),就像 bootstrap.
中的 scrollspy我该怎么做?
非常感谢!我已经用谷歌搜索了几个小时,但就是找不到答案。
编辑:对于可能 运行 遇到此问题的任何人,这就是我所做的
我向包含我的导航栏项目的 ul 添加了一个 id,并添加了
data-menuanchor="your anchor goes here"
然后,在全页js初始化中,添加了菜单选项
`$('#fullpage').fullpage({
anchors: ['firstPage', 'secondPage', 'thirdPage', 'fourthPage',
'lastPage'],
menu: '#id of your navbar ul'});`
然后我进入 fullpagejs css 文件并编辑这部分以在该部分处于活动状态时显示我想要的样子
fp-nav ul li a.active span,
.fp-slidesNav ul li a.active span,
fp-nav ul li:hover a.active span,
.fp-slidesNav ul li:hover a.active span{
background-color: #3b8d37;
color:white;
}
感谢@Kasabucki Alexandr 快速而有用的回复
您可以查看 fullPage.js 的文档。选项:菜单。
<ul id="myMenu">
<li data-menuanchor="firstPage" class="active"><a href="#firstPage">Первый раздел</a></li>
<li data-menuanchor="secondPage"><a href="#secondPage">Второй раздел</a></li>
<li data-menuanchor="thirdPage"><a href="#thirdPage">Третий раздел</a></li>
<li data-menuanchor="fourthPage"><a href="#fourthPage">Четвёртый раздел</a></li>
$('#fullpage').fullpage({
anchors: ['firstPage', 'secondPage', 'thirdPage', 'fourthPage', 'lastPage'],
menu: '#myMenu'});
看来你在找
您也可以使用 afterSlideLoad 回调:
$('#fullpage').fullpage({
anchors: ['firstPage', 'secondPage', 'thirdPage', 'fourthPage', 'lastPage'],
afterSlideLoad: function( anchorLink, index, slideAnchor, slideIndex){
var loadedSlide = $(this);
//первый слайд второго раздела
if(anchorLink == 'secondPage' && slideIndex == 1){
alert("Первый слайд загружен");
}
//второй слайд второго раздела (supposing #secondSlide is the
//привязка для второго раздела
if(index == 2 && slideIndex == 'secondSlide'){
alert("Второй слайд загружен");
}
}
});