如何正确使用fullpage.js onLeave()函数?

时间:2016-09-28 19:13:57

标签: jquery html css fullpage.js

我想让用户向下滚动4个部分。当到达第四部分,并且用户再次向下滚动时,视图应该再次跳到第一部分而不是向下滚动到第一部分。 (有一个fith部分;但它只包含印记,否则可以访问。)

这是我的代码:

$('#fullpage').fullpage({
    onLeave: function(index, nextIndex, direction){
        if(nextIndex == 5){
            $.fn.fullpage.moveTo(1);
        }
    }
});

它被放置在第四部分的脚本中(是正确的地方?移动它没有任何影响,但是......)。

会发生什么,是:

  • 再也无法进入第5部分

  • 可以滚动到其他部分,但无法通过其锚点访问

我做错了什么?

2 个答案:

答案 0 :(得分:1)

更新2019:

fullPage.js版本3上不存在此问题: https://github.com/alvarotrigo/fullPage.js

旧答案

此答案已在fullpage.js github issues forum

中得到解决

我从中粘贴:

我明白你现在的意思,但实际上自2.7.9以来就没有用。

目前这是一个解决方案:

http://jsfiddle.net/97tbk/1292/

//IE < 10 pollify for requestAnimationFrame
window.requestAnimFrame = function(){
    return window.requestAnimationFrame ||
        window.webkitRequestAnimationFrame ||
        window.mozRequestAnimationFrame ||
        window.oRequestAnimationFrame ||
        window.msRequestAnimationFrame ||
        function(callback){ callback() }
}();


$('#fullpage').fullpage({
    sectionsColor: ['yellow', 'orange', '#C0C0C0', '#ADD8E6'],
    onLeave: function(index, nextIndex, direction) {
        var leavingSection = $(this);
        requestAnimFrame(function(){
            if (index == 2 && direction == 'down') {   
                $.fn.fullpage.moveTo(4);
            }
        });
    }
});

答案 1 :(得分:0)

您走在正确的道路上,只需在return false;指令后添加moveTo即可。执行此操作将终止下一个向下滚动操作并允许moveTo生效。

$('#fullpage').fullpage({
  anchors: ['page1', 'page2', 'page3', 'page4', 'page5', 'page6'],
  sectionsColor: ['yellow', 'orange', '#C0C0C0', '#ADD8E6', 'blue', 'green'],
  onLeave: function(index, nextIndex, direction) {
    $('#ind').text("nextIndex = " + nextIndex);
    if (nextIndex > 4 && direction === 'down') {
      $.fn.fullpage.moveTo('page1');
      return false;
    }
  }
});

//adding the action to the button
$(document).on('click', '#moveTo', function() {
  $.fn.fullpage.moveTo(2, 1);
});
.section {
  text-align: center;
  font-size: 3em;
}
/**
Fixed button outside the fullpage.js wrapper
*/

#moveTo {
  top: 20px;
  left: 20px;
  position: fixed;
  z-index: 999;
  background: #09f;
  font-size: 1em;
  cursor: pointer;
}
#ind {
  top: 40px;
  left: 20px;
  position: fixed;
  z-index: 999;
  font-size: 1em;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://rawgit.com/alvarotrigo/fullPage.js/master/jquery.fullPage.js"></script>

<div id="moveTo">Move to page2 slide 2</div>
<div id="ind"></div>

<div id="fullpage">
  <div class="section">One</div>
  <div class="section">
    <div class="slide" data-anchor="slide1">Two 1</div>
    <div class="slide" data-anchor="slide2">Two 2</div>
  </div>
  <div class="section">Three</div>
  <div class="section">Four</div>
  <div class="section">Five</div>
  <div class="section">Six</div>
</div>