0

ユーザーがページの下部までスクロールした後、ページの上部に戻る操作が機能しません。

ページフッター

<div data-role="footer" data-theme="b">
    <div class="ui-bar">
        <a href="" data-role="button" data-icon="arrow-u" data-theme="d" style="float:right;" class="returnTopAction">Return top</a>
    </div>
</div>

Jquery リファレンス

<link rel="stylesheet" href="http://code.jquery.com/mobile/1.3.0/jquery.mobile-1.3.0.min.css" />
<script src="http://code.jquery.com/jquery-1.8.2.min.js"></script>
<script src="http://code.jquery.com/mobile/1.3.0/jquery.mobile-1.3.0.min.js"></script>

更新: 私の完全な HTML コード

<html>

    <head>
        <title>SQ/TR</title>
        <link rel="stylesheet" href="http://code.jquery.com/mobile/1.3.0/jquery.mobile-1.3.0.min.css" />
        <script src="http://code.jquery.com/jquery-1.8.2.min.js"></script>
        <script src="http://code.jquery.com/mobile/1.3.0/jquery.mobile-1.3.0.min.js"></script>
    </head>

    <body>
        <div data-role="page" id="arealistpage">
            <div data-role="header" data-theme="b">
                 <h1>SQ/TR</h1>

                <a href="../Default.aspx" class='ui-btn-left ui-btn-back' data-icon='arrow-l'>Back</a>
            </div>
            <!-- /header -->
            <div data-role="content">
                <ul data-filter="true" data-inset="true" data-role="listview">
                    <li>
                        <a href="#">Design Squad Check</a>
                    </li>
                    <li>
                        <a href="#">Vendor Squad Check</a>
                    </li>
                    <li>
                        <a href="#">Business Squad Check</a>
                    </li>
                    <li>
                        <a href="#">Management Squad Check</a>
                    </li>
                    <li>
                        <a href="#">Design Transmittal</a>
                    </li>
                    <li>
                        <a href="#">Vendor Transmittal</a>
                    </li>
                    <li>
                        <a href="#">Business Transmittal</a>
                    </li>
                    <li>
                        <a href="#">Management Transmittal</a>
                    </li>
                </ul>
            </div>
            <!-- /content -->
            <div data-role="footer" data-theme="b" id="footerNavBar">
                <div class="ui-bar">
                    <a href="" data-role="button" data-icon="arrow-u" data-theme="d" style="float:right;" class="returnTopAction">Return top</a>
                </div>
            </div>
        </div>
        <!-- /page -->
    </body>

</html>
4

2 に答える 2

1

jQuery Mobile には、スクロール イベント リスナーをトリガーせずに特定の Y 位置までスクロールするjQuery.mobile.silentScroll()メソッドがあります。このメソッドは、アニメーション スクロールを実行しません。

jQuery Mobile silentScroll を使用した例:

<html>

    <head>
        <title>SQ/TR</title>
        <link rel="stylesheet" href="http://code.jquery.com/mobile/1.3.0/jquery.mobile-1.3.0.min.css" />
        <script src="http://code.jquery.com/jquery-1.8.2.min.js"></script>
        <script src="http://code.jquery.com/mobile/1.3.0/jquery.mobile-1.3.0.min.js"></script>
        <script>
            $(document).on('click', '.returnTopAction', function() {
                $.mobile.silentScroll(0);
            });
        </script>
    </head>

    <body>
        <div data-role="page" id="arealistpage">
            <div data-role="header" data-theme="b">
                 <h1>SQ/TR</h1>

                <a href="../Default.aspx" class='ui-btn-left ui-btn-back' data-icon='arrow-l'>Back</a>
            </div>
            <!-- /header -->
            <div data-role="content">
                <ul data-filter="true" data-inset="true" data-role="listview">
                    <li>
                        <a href="#">Design Squad Check</a>
                    </li>
                    <li>
                        <a href="#">Vendor Squad Check</a>
                    </li>
                    <li>
                        <a href="#">Business Squad Check</a>
                    </li>
                    <li>
                        <a href="#">Management Squad Check</a>
                    </li>
                    <li>
                        <a href="#">Design Transmittal</a>
                    </li>
                    <li>
                        <a href="#">Vendor Transmittal</a>
                    </li>
                    <li>
                        <a href="#">Business Transmittal</a>
                    </li>
                    <li>
                        <a href="#">Management Transmittal</a>
                    </li>
                </ul>
            </div>
            <!-- /content -->
            <div data-role="footer" data-theme="b" id="footerNavBar">
                <div class="ui-bar">
                    <a href="" data-role="button" data-icon="arrow-u" data-theme="d" style="float:right;" class="returnTopAction">Return top</a>
                </div>
            </div>
        </div>
        <!-- /page -->
    </body>

</html>

さらに、アニメーションスクロールを実行する次のスクリプトを使用できます。

$(document).on('click', '.returnTopAction', function() {
    $('html, body').animate({scrollTop: $("#arealistpage").offset().top}, 1000);
});

コードに基づく以下の例を確認できます。

<html>

    <head>
        <title>SQ/TR</title>
        <link rel="stylesheet" href="http://code.jquery.com/mobile/1.3.0/jquery.mobile-1.3.0.min.css" />
        <script src="http://code.jquery.com/jquery-1.8.2.min.js"></script>
        <script src="http://code.jquery.com/mobile/1.3.0/jquery.mobile-1.3.0.min.js"></script>
        <script>
            $(document).on('click', '.returnTopAction', function() {
                $('html, body').animate({scrollTop: $("#arealistpage").offset().top}, 1000);
            });
        </script>
    </head>

    <body>
        <div data-role="page" id="arealistpage">
            <div data-role="header" data-theme="b">
                 <h1>SQ/TR</h1>

                <a href="../Default.aspx" class='ui-btn-left ui-btn-back' data-icon='arrow-l'>Back</a>
            </div>
            <!-- /header -->
            <div data-role="content">
                <ul data-filter="true" data-inset="true" data-role="listview">
                    <li>
                        <a href="#">Design Squad Check</a>
                    </li>
                    <li>
                        <a href="#">Vendor Squad Check</a>
                    </li>
                    <li>
                        <a href="#">Business Squad Check</a>
                    </li>
                    <li>
                        <a href="#">Management Squad Check</a>
                    </li>
                    <li>
                        <a href="#">Design Transmittal</a>
                    </li>
                    <li>
                        <a href="#">Vendor Transmittal</a>
                    </li>
                    <li>
                        <a href="#">Business Transmittal</a>
                    </li>
                    <li>
                        <a href="#">Management Transmittal</a>
                    </li>
                </ul>
            </div>
            <!-- /content -->
            <div data-role="footer" data-theme="b" id="footerNavBar">
                <div class="ui-bar">
                    <a href="" data-role="button" data-icon="arrow-u" data-theme="d" style="float:right;" class="returnTopAction">Return top</a>
                </div>
            </div>
        </div>
        <!-- /page -->
    </body>

</html>
于 2013-03-02T07:37:22.653 に答える
1

クリック イベントをボタンにバインドし、jquery anmiate を使用して一番上にスクロールしてスライド効果を出します。

HTML

<a data-role="button" data-icon="arrow-u" data-theme="d" style="float:right;" class="returnTopAction">Return top</a>             

JavaScript

<script type="text/javascript">
    $(document).on('click', ".returnTopAction", function()
    {   
       $("body").animate({"scrollTop": 0});
    });
</script>
于 2013-03-02T07:03:16.660 に答える