0

画像カルースの水平スクロールを設定するためにさまざまなアプローチを試し、最終的にこれにたどり着きましたが、残念ながら、Flickity画像スライダーで次の問題を解決する方法がわかりません。ブラウザ コンソールに次のエラーが表示されます。

未定義のプロパティ 'x' を設定できません 未定義の
プロパティ 'x' を読み取れません

このcodepen.io の例でわかるように、これらの動作はかなり貧弱です。

$('.gallery').mousewheel(function(e) {
    e.preventDefault();
    var flkty = Flickity.data(this);

    if (!window.wheeling) {
        // console.log('start wheeling!');

        if(e.deltaX > 0 || e.deltaY < 0){
            flkty.next();
        } else if(e.deltaX < 0 || e.deltaY > 0){
            flkty.previous();
        }
    }

    clearTimeout(window.wheeling);
    window.wheeling = setTimeout(function() {
        // console.log('stop wheeling!');

        delete window.wheeling;

        // reset wheeldelta
        window.wheeldelta.x = 0;
        window.wheeldelta.y = 0;
    }, 50);

    window.wheeldelta.x += e.deltaFactor * e.deltaX;
    window.wheeldelta.y += e.deltaFactor * e.deltaY;
    if(window.wheeldelta.x > 500 || window.wheeldelta.y > 500 || window.wheeldelta.x < -500 || window.wheeldelta.y < -500){
        window.wheeldelta.x = 0;
        window.wheeldelta.y = 0;

        if(e.deltaX > 0 || e.deltaY < 0){
            flkty.next();
        } else if(e.deltaX < 0 || e.deltaY > 0){
            flkty.previous();
        }
    }

    // console.log(window.wheeldelta);

});

PS: コードはこの JQuery プラグインの上で動作します。

4

1 に答える 1

0

ブラウザーのグローバル スコープに wheeldelta のような既存のプロパティが存在することを思い出せません。サンプルからは、wheeldelta が計算され、コードを通じて直接使用されるように見えます。

このような場合、最初に wheeldelta を開始するだけで、当面の問題を解決できます。

window.wheeldelta = {}
于 2015-12-30T17:14:06.873 に答える