1

ページをクリックすると、ページ全体がスクロールされるプロジェクトに取り組んでいました。ただし、これは 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);
});
4

1 に答える 1

1

jsfiddle ページを作成します。

http://jsfiddle.net/u32Nw/2/

動作していることはわかりますが、スクロールが止まりません。

    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);
});

これはまったく同じコードですが、リファクタリングしただけです。

ここから作業してみてください。デバッグのためにコードをリファクタリングする必要があります。

于 2013-09-03T07:37:09.940 に答える