0

取り組んでいるこのプロジェクトのメニュー リンクは、カスタム関数をトリガーします。この関数は 2 つのパラメーターを取ります。n はクリックされた要素のインデックスで、p はスクロール先の scrollTop です。過去にスクロールする必要がある「スライド」の数に基づいて、scrollTo の期間を変更したいと考えています。スライドあたり 1000 ミリ秒。すべてのインデックスを 0 ではなく 1 から開始するように設定します。次に、すべてのメニュー リスト項目をループし、それが現在のスライドの場合は、そのインデックスを x に格納します。n - x... などの絶対値を返します。数学は正常にログアウトします。問題は、scrollTo が変数を受け入れないことです。何かご意見は?

function calcScrollSpeed(n, p){
    var x = 1;
    var y;
    var pp = p + 'px';
    $('nav#left div ul li').each(function(i){
        var ii = 2;
        var iii = ii + i;
        if($(this).hasClass('current')) {
            x = iii;
        }
    });
    y = Math.abs(n - x);
    yy = y + '000';
    $.scrollTo(pp, yy);
    console.log(yy);
}

ところで

ii を 2 に設定した理由は、nav に含まれていないロゴ/ホーム リンク要素を考慮するためです。x は 1 から始まります。

4

1 に答える 1

2

問題は、yy が文字列であり、ナットが数字であることです。

y = Math.abs(n - x);
yy = y + '000';

試す

 yy = yy*1000
于 2013-03-27T19:17:02.887 に答える