javascript - setInterval() 每次访问页面时触发另一个间隔

标签 javascript jquery setinterval fullpage.js

大家好,我正在使用 fullpage.js,我正在尝试使用 setInterval() 在我的主页上制作一个自动 slider 。问题是每次我转到我网站上的另一个页面并返回主页时,setInterval 会触发另一个间隔,并且 slider 会快速而疯狂地移动。

每次访问主页时我都在使用 clearInterval() 但它似乎不起作用,知道如何解决这个问题吗?

谢谢!

window.laytheme.on("newpageshown", function(layoutObj, type, obj){
    var myInter
    var autoScroll = function() {
    jQuery.fn.fullpage.moveSectionDown()
    }

    if(obj.id === 11){
    clearInterval(myInter)
    myInter = setInterval(autoScroll, 3500)
    }

    })

最佳答案

尝试将您的代码更改为如下所示的 setTimeout:

//ensure interval variable are accessible
var myInterval = null;
var autoScroll = function() {
    jQuery.fn.fullpage.moveSectionDown()
};

window.laytheme.on("newpageshown", function(layoutObj, type, obj){
    if(obj.id === 11){
        if(myInterval != null){
            clearTimeout(myInterval);
        }
        myInterval = setTimeout(autoScroll, 3500);
    }
});

关于javascript - setInterval() 每次访问页面时触发另一个间隔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42762511/

相关文章:

javascript - 当我使用 JQuery(event.preventDefault 方法)停止页面时,页面在按钮单击时刷新 - Asp.Net MVC

javascript - 如何检测网络摄像头的宽度和高度?

javascript - Node.js 中的 UTF-16

javascript - DataTables : Using Row grouping, 如何获取分组条目的计数?

javascript文件下载

javascript - Safari 在后台选项卡中延迟 setInterval/setTimeout (interval > 1000ms)

php - 如何在 Laravel 5.8 的最后 24 小时内每 15 分钟获取一行数据?

javascript - 动画速度在 safari/chrome iphone 中没有改变

javascript - 使用lodash按键对对象进行排序,但排序后键丢失

javascript - setInterval 和 css() jQuery