Fullpage.js - 防止滚动
Fullpage.js - Prevent scroll
我已经设置 fullpage.js 但想要能够滚动到某个部分的功能,并且如果满足某些条件则在下一个滚动中显示同一部分中的新元素。下一个卷轴不应进入下一节。
使用回调我已经能够确定某个部分何时需要第二次滚动。根据文档,我什至可以在滚动发生之前取消滚动,因此无需进入下一节即可显示新元素。问题是允许它在那之后移动到下一部分。我要么让它停止滚动,但不再能够再次滚动,要么文本在滚动到下一部分时出现,因为任何类型的标志都可以更改,并且在下一个滚动上多次触发,因此它会立即离开该部分。
//HTML - typical fullpage.js section
<div class="section">
<div>
<h1>Default Text</h1>
<p class="hidden-text">Additonal text to appear on second scroll</p>
</div>
</div>
<div class="section">
<div>
<h1>Next Section</h1>
</div>
</div>
//fullpage.js - the callbacks being used
afterLoad: function(anchorLink, index){
preventScroll = false;
if(this.has(".hidden-text").length){
preventScroll = true;
}
},
onLeave: function(index, nextIndex, direction){
if (preventScroll && direction == "down") {
this.find('.hidden-text').addClass('animate-text');
this.find('.hidden-text').removeClass('hidden-text');
return false;
}
},
Codepen 在这里找到:http://codepen.io/anon/pen/oxEexY
您必须添加逻辑才能知道隐藏文本何时显示。添加超时或其他内容。然后在发生这种情况时将标志 preventScroll
更改为 true
。
在这种情况下,我假设文本在 1 秒(1000 毫秒)后显示:
此外,请注意我是如何使用 $(this)
而不是 this
。
我已经设置 fullpage.js 但想要能够滚动到某个部分的功能,并且如果满足某些条件则在下一个滚动中显示同一部分中的新元素。下一个卷轴不应进入下一节。
使用回调我已经能够确定某个部分何时需要第二次滚动。根据文档,我什至可以在滚动发生之前取消滚动,因此无需进入下一节即可显示新元素。问题是允许它在那之后移动到下一部分。我要么让它停止滚动,但不再能够再次滚动,要么文本在滚动到下一部分时出现,因为任何类型的标志都可以更改,并且在下一个滚动上多次触发,因此它会立即离开该部分。
//HTML - typical fullpage.js section
<div class="section">
<div>
<h1>Default Text</h1>
<p class="hidden-text">Additonal text to appear on second scroll</p>
</div>
</div>
<div class="section">
<div>
<h1>Next Section</h1>
</div>
</div>
//fullpage.js - the callbacks being used
afterLoad: function(anchorLink, index){
preventScroll = false;
if(this.has(".hidden-text").length){
preventScroll = true;
}
},
onLeave: function(index, nextIndex, direction){
if (preventScroll && direction == "down") {
this.find('.hidden-text').addClass('animate-text');
this.find('.hidden-text').removeClass('hidden-text');
return false;
}
},
Codepen 在这里找到:http://codepen.io/anon/pen/oxEexY
您必须添加逻辑才能知道隐藏文本何时显示。添加超时或其他内容。然后在发生这种情况时将标志 preventScroll
更改为 true
。
在这种情况下,我假设文本在 1 秒(1000 毫秒)后显示:
此外,请注意我是如何使用 $(this)
而不是 this
。