Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/460.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Autoscroll过去是,但现在不是;行不通_Javascript_Jquery - Fatal编程技术网

Javascript Autoscroll过去是,但现在不是;行不通

Javascript Autoscroll过去是,但现在不是;行不通,javascript,jquery,Javascript,Jquery,我在做一个项目,当你点击页面时,它会滚动页面的整个长度。但它以20px的间隔运行;这是为了允许在iOS中滚动时执行javascript 然而,当上传最终版本时,我的ftp客户端删除了一些代码,现在无法工作。我不明白为什么 有什么建议吗 var t; var scrolling = false; // doScroll sets the position in which to auto pause. function doScroll() { $('body').scrollTop($

我在做一个项目,当你点击页面时,它会滚动页面的整个长度。但它以20px的间隔运行;这是为了允许在iOS中滚动时执行javascript

然而,当上传最终版本时,我的ftp客户端删除了一些代码,现在无法工作。我不明白为什么

有什么建议吗

var t;
var scrolling = false;

// doScroll sets the position in which to auto pause.
function doScroll() {
    $('body').scrollTop($('body').scrollTop() + 20);
    if($("#pause").offset().top >=300 && $("#pause").offset().top < 304){
        ScrollIt();    
    } else 
    if($("#pause").offset().top >=4000 && $("#pause").offset().top < 4004){
        ScrollIt() ;   
    } else
    if($("#pause").offset().top >=7500 && $("#pause").offset().top < 7504){
        ScrollIt()  ;  
    }
}

// ScrollIt removes the interval for scrolling, pausing the scroll.
function ScrollIt() {
    clearInterval(t);
    scrolling = false;
        return; 
//        playPause()
}

//Stop/start on click
$('#pause').on('click',function(){
    ScrollIt();
    scrolling = !scrolling;
    if(!scrolling){ 
        clearInterval(t);
        return;
    }
    t = setInterval(doScroll, 5);
});
vart;
var滚动=假;
//doScroll设置自动暂停的位置。
函数doscorl(){
$('body').scrollTop($('body').scrollTop()+20);
如果($(“#暂停”).offset().top>=300&$(“#暂停”).offset().top<304){
滚动它();
}否则
如果($(“#暂停”).offset().top>=4000&$(“#暂停”).offset().top<4004){
滚动它();
}否则
如果($(“#暂停”).offset().top>=7500&$(“#暂停”).offset().top<7504){
滚动它();
}
}
//滚动删除滚动间隔,暂停滚动。
函数ScrollIt(){
净间隔(t);
滚动=假;
返回;
//播放暂停()
}
//单击停止/启动
$('#pause')。在('单击',函数()上){
滚动它();
滚动=!滚动;
如果(!滚动){
净间隔(t);
返回;
}
t=设定间隔(多斯克罗尔,5);
});

我为您创建JSFIDLE页面

我可以看到它正在工作,但滚动并没有停止

    var t;
var scrolling = false;

// doScroll sets the position in which to auto pause.

function doScroll() {
    var $body = $("body"),
        $pause = $("#pause");
    $body.scrollTop($body.scrollTop() + 20);
    var pauseTop = $pause.offset().top;
    if (pauseTop >= 300 && pauseTop < 304 || pauseTop >= 4000 && pauseTop < 4004 || pauseTop >= 7500 && pauseTop < 7504) {
        clearScrollInterval();
    }
}

// scrollIt removes the interval for scrolling, pausing the scroll.

function clearScrollInterval() {
    clearInterval(t);
    scrolling = false;
    return;
    //        playPause()
}

//Stop/start on click
$("#pause").on("click", function () {
    clearScrollInterval();
    scrolling = !scrolling;
    t = setInterval(doScroll, 5);
});
vart;
var滚动=假;
//doScroll设置自动暂停的位置。
函数doscorl(){
变量$body=$(“body”),
$pause=$(“#pause”);
$body.scrollTop($body.scrollTop()+20);
var pauseTop=$pause.offset().top;
如果(pauseTop>=300&&pauseTop<304 | | pauseTop>=4000&&pauseTop<4004 | | pauseTop>=7500&&pauseTop<7504){
clearScrollInterval();
}
}
//滚动删除滚动间隔,暂停滚动。
函数ClearCrollInterval(){
净间隔(t);
滚动=假;
返回;
//播放暂停()
}
//单击停止/启动
$(“#暂停”)。在(“单击”上,函数(){
clearScrollInterval();
滚动=!滚动;
t=设定间隔(多斯克罗尔,5);
});
这是完全相同的代码,只是经过重构


试着在这里工作。您需要重构代码以进行调试。

我为您创建JSFIDLE页面

我可以看到它正在工作,但滚动并没有停止

    var t;
var scrolling = false;

// doScroll sets the position in which to auto pause.

function doScroll() {
    var $body = $("body"),
        $pause = $("#pause");
    $body.scrollTop($body.scrollTop() + 20);
    var pauseTop = $pause.offset().top;
    if (pauseTop >= 300 && pauseTop < 304 || pauseTop >= 4000 && pauseTop < 4004 || pauseTop >= 7500 && pauseTop < 7504) {
        clearScrollInterval();
    }
}

// scrollIt removes the interval for scrolling, pausing the scroll.

function clearScrollInterval() {
    clearInterval(t);
    scrolling = false;
    return;
    //        playPause()
}

//Stop/start on click
$("#pause").on("click", function () {
    clearScrollInterval();
    scrolling = !scrolling;
    t = setInterval(doScroll, 5);
});
vart;
var滚动=假;
//doScroll设置自动暂停的位置。
函数doscorl(){
变量$body=$(“body”),
$pause=$(“#pause”);
$body.scrollTop($body.scrollTop()+20);
var pauseTop=$pause.offset().top;
如果(pauseTop>=300&&pauseTop<304 | | pauseTop>=4000&&pauseTop<4004 | | pauseTop>=7500&&pauseTop<7504){
clearScrollInterval();
}
}
//滚动删除滚动间隔,暂停滚动。
函数ClearCrollInterval(){
净间隔(t);
滚动=假;
返回;
//播放暂停()
}
//单击停止/启动
$(“#暂停”)。在(“单击”上,函数(){
clearScrollInterval();
滚动=!滚动;
t=设定间隔(多斯克罗尔,5);
});
这是完全相同的代码,只是经过重构


试着在这里工作。您需要重构代码以进行调试。

执行此脚本时,控制台中是否出现任何错误。请也包括他们与您的问题也请粘贴您的整个脚本在这里。我找不到doScroll被Interval调用的行。在执行此脚本时,控制台中是否出现任何错误。请也包括他们与您的问题也请粘贴您的整个脚本在这里。我找不到一行Doscorl被称为it’s called by Interval点击fiddle链接并自己测试。对不起,在手机上,至少。无法测试。是自动保险箱坏了吗?在这种情况下,这是因为值不正确,pauseTop>=300&&pauseTop=300&&pauseTopclick在fiddle链接上并自己测试它。抱歉,在手机上,至少。无法测试。是自动保险箱坏了吗?在这种情况下,是因为值不正确,pauseTop>=300&&pauseTop=300&&pauseTop