我正在使用fullPage.js的最新版本(2.1.8)来创建仪表板,通过更新window.location自动垂直和水平滑动。
请参阅jsfiddle。
我面临的问题是,当我们回到第2部分时,滑块仍处于最终滑动位置,并且必须滑回到幻灯片1,然后才能向前滑过幻灯片。
我已尝试按照Issue #129的说明操作,这些说明似乎适用于使用1.7.2版本的人:
申请onLeave事件代码:
onLeave: function(index, nextIndex, direction){
//getting the section by the index
var section = $('.section').eq((index - 1));
//if the section we are leaving has slides...
if (section.find('.slides').length) {
//moving to slide 0
$.fn.fullpage.scrollSlider(section, 0);
}
}
但是,这对行为没有影响。
当使用最新版本的fullPage.js移动到下一部分时,是否有人能够建议一种方法来确保滑块始终放回默认幻灯片?
一切顺利,
AshBestos
答案 0 :(得分:3)
我遇到了同样的问题。解决了函数scrollSlider()的副本。
将其命名为scrollDefault()函数并将此函数设置为public。
在我的jquery.fullPage.custom.js
中$.fn.fullpage.scrollDefault = function(section, slide){
if(typeof slide != 'undefined'){
var slides = section.find('.slides');
var destiny = slides.find('[data-anchor="'+slide+'"]');
if(!destiny.length){
destiny = slides.find('.slide').eq(slide);
}
if(destiny.length){
landscapeScroll(slides, destiny);
}
}
};
setTimeout是一个快速&脏解决方案隐藏滚动动画。因此,当您单击另一部分然后返回时,您会看到第一张幻灯片。
在我的$(文件).ready(function(){
onLeave: function(index, nextIndex, direction){
setTimeout(function(){
var section = $('.section').eq((index - 1));
if (section.find('.slides').length) {
$.fn.fullpage.scrollDefault(section, 0);
}
}, 500);
}