1

HTML :

<div data-role="page" id="index">
    <div data-theme="b" data-role="header" data-position="fixed">
        <h1 class="header">Index page</h1>
    </div>

    <div data-role="content">
        <div class="example-wrapper" data-iscroll>
            <ul data-role="listview">
                <li><a href="#">Some link</a></li>
                <li><a href="#">Some link</a></li>
                <li><a href="#">Some link</a></li>
                <li><a href="#">Some link</a></li>
                <li><a href="#">Some link</a></li>
                <li><a href="#">Some link</a></li>
                <li><a href="#">Some link</a></li>
                <li><a href="#">Some link</a></li>
                <li><a href="#">Some link</a></li>
                <li><a href="#">Some link</a></li>
                <li><a href="#">Some link</a></li>
                <li><a href="#">Some link</a></li>
                <li><a href="#">Some link</a></li>
                <li><a href="#">Some link</a></li>
                <li><a href="#">Some link</a></li>
                <li><a href="#">Some link</a></li>
                <li><a href="#">Some link</a></li>                
              </ul>
        </div>          
    </div>

    <div data-theme="b" data-role="footer">
        <h1><a href="#" class="top">Footer</a></h1>
    </div>    
</div>    

以下はスクロールバーを移動するJavaScriptです。しかし、スクロールバーが移動した後にスクロールバーの位置を取得したい:

$(document).on('click','a.top',function(){   
    $(".example-wrapper").iscrollview("scrollTo", 0, 100, 200, true);
    console.log($('.iscroll-wrapper').iscrollview('option','y'));
});

このフィドルをチェックアウトしてください。

4

2 に答える 2

1

iScrollview はコンテンツを div でラップし、その div をスクロールするため.iscroll-scrollerに使用します。前述の div の CSS プロパティtransform()を取得する必要があります。transform

$(".iscroll-scroller").css("transform");

上記は を返し、垂直方向の変換/変換の値を運びますmatrix(1, 0, 0, 1, x, y)y次に、.split(" ") 行列を作成して配列に変換し、読み取れるようにする必要があります。

var matrix = $(".iscroll-scroller").css("transform").split(" ");

配列は次のようになります

["matrix(1,", "0,", "0,", "1,", "0,", "-100)"]

次に、配列parseInt(string, radix)の最後の値のみ(=最後の値のインデックス)。matrix.length - 1

var posY = parseInt(matrix[matrix.length - 1], 10);

デモ (1)

(1) はデモで使用され、アニメーション (変換) が完了した後setTimeout()の取得を遅らせます。posY

于 2014-02-21T17:53:37.523 に答える