【问题标题】:set and clearing intervals to automatically scroll sections in fullPage.js设置和清除间隔以自动滚动 fullPage.js 中的部分
【发布时间】:2014-11-10 17:08:49
【问题描述】:

我一直在尝试使用 fullPage.js 创建一个网站,其中有 5 个垂直部分,其中 2 个有水平幻灯片。其中一个我想自动横向滚动,另一个我想手动滚动,即由用户控制。

到目前为止,我已经差不多了,我将页面呈现后的间隔设置为 1500 毫秒,并在页面到达第 5 个“手动”部分时清除此间隔。这里有一个工作版本:

http://jsfiddle.net/2dhkR/187/

我遇到的两个问题是,在到达第 5 部分后,返回到第 2 个“自动”滚动部分后,滚动不会恢复。此外,第 5 部分在停止之前仍然滚动了一张幻灯片。

这是我目前的代码:

$(document).ready(function() {
        $('#fullpage').fullpage({
        anchors: ['firstPage', 'secondPage', 'thirdPage', 'fourthPage', 'lastPage'],
        sectionsColor: ['#8FB98B', 'navy', '#EAE1C0', '#333333', '#AA4321'],
        slidesNavigation: true,
        loopBottom: true,

        afterRender: function(){
        idInterval = setInterval(function(){
                $.fn.fullpage.moveSlideRight();
        }, 1500);
    },

        //turns off the automatic scrolling. NEEDS TO BE TURNED BACK ON
        afterLoad: function(anchorLink, index){
           //using index
           if(index == 5){
               clearInterval(idInterval);
           }
    }
});
    });

我尝试在此之后重置间隔,使用:

           if(index == 2){
               setInterval(function(){
                $.fn.fullpage.moveSlideRight();
        }, 1500);
           }

但这不起作用,并且似乎加快了自动滚动。

谁能帮我订购这些命令,并决定使用哪个 fullpage.js 回调 (https://github.com/alvarotrigo/fullPage.js#callbacks)?

非常感谢

【问题讨论】:

    标签: javascript jquery setinterval clearinterval fullpage.js


    【解决方案1】:

    您尝试使用afterRender 回调来向右滑动没有任何意义。

    您应该只在第 2 部分执行此操作,请改用 afterLoad 回调,每次访问部分时也会触发该回调。

    Living demo

    var idInterval;
    
    $(document).ready(function () {
        $('#fullpage').fullpage({
            anchors: ['firstPage', 'secondPage', 'thirdPage', 'fourthPage', 'lastPage'],
            sectionsColor: ['#8FB98B', 'green', '#EAE1C0', '#333333', '#AA4321'],
            slidesNavigation: true,
            loopBottom: true,
    
    
            afterLoad: function (anchorLink, index) {
                if (index == 2) {
                    idInterval = setInterval(function () {
                        $.fn.fullpage.moveSlideRight();
                    }, 1500);
                }
                //using index
                if (index == 5) {
                    clearInterval(idInterval);
                }
            }
        });
    });
    

    【讨论】:

    • 还有一个问题@Alvaro,如果我将自动 scolling 部分更改为第一个,它不会在加载时自动 scoll,但只有当我在导航后返回它然后返回它时才会自动 scoll。我在这里有一个例子:jsfiddle.net/2dhkR/191 我将如何更改回调/顺序,以便它在用户首次加载页面时起作用?谢谢
    • 您还需要使用afterRender,请查看:jsfiddle.net/2dhkR/192
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-24
    • 1970-01-01
    • 1970-01-01
    • 2020-09-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多