Framework7-refresh

提供:Dev Guides
移動先:案内検索

Framework7-更新

説明

これは、ページコンテンツをプルして更新(リロード)するために使用される特別なコンポーネントです。

次のコードは、ページのコンテンツを更新する方法を示しています-

<div class = "page">
   <!-- Page content should have additional "pull-to-refresh-content" class -->
   <div class = "page-content pull-to-refresh-content" data-ptr-distance = "55">
      <!-- Default pull to refresh layer-->
      <div class = "pull-to-refresh-layer">
         <div class = "preloader"></div>
      <div class = "pull-to-refresh-arrow"></div>
   </div>

   <!-- usual content below -->
   <div class = "list-block">
      ...
   </div>
</div>

次のクラスはリフレッシュで使用されます-

  • page-content -追加の_pull-to-refresh-content_クラスがあり、プルによるリフレッシュを可能にするために必要です。
  • pull-to-refresh-layer -これは、視覚要素を_pull to refresh_するために使用される隠しレイヤーであり、単なるプリローダーと矢印です。
  • data-ptr-distance = "55" -これは追加の属性で、カスタムの「プルして更新」トリガー距離を設定できます。デフォルト値は44pxです。

プルして更新イベント

「更新するプル」では、いくつかのJavaScriptイベントがあります。次の表に示します-

S.No Event & Description Target
1

pullstart

コンテンツを更新するためにプルを開始するたびにトリガーされます。

a

プルしてコンテンツを更新します。

[source,prettyprint,notranslate] ---- <div class = "pull-to-refresh-content"> ----

2

pullmove

コンテンツを更新するためにプルしているときにトリガーされます。

a

プルしてコンテンツを更新します。

[source,prettyprint,notranslate] ---- <div class="pull-to-refresh-content"> ----

3

pullend

プルを解除してコンテンツを更新するたびにトリガーされます。

a

プルしてコンテンツを更新します。

[source,prettyprint,notranslate] ---- <div class="pull-to-refresh-content"> ----

4

refresh

このイベントは、更新するプルが_ "refreshing" _状態になるとトリガーされます。

a

プルしてコンテンツを更新します。

[source,prettyprint,notranslate] ---- <div class="pull-to-refresh-content"> ----

5

refreshdone

更新後にトリガーされ、初期状態に戻ります。 これは、_pullToRefreshDone_メソッドを呼び出した後に行われます。

a

プルしてコンテンツを更新します。

[source,prettyprint,notranslate] ---- <div class="pull-to-refresh-content"> ----

Pull to Refreshで使用できるアプリのメソッドがあります。

S.No

アプリのメソッドと説明

1

  • myApp.pullToRefreshDone(ptrContent)*

_pull-to-refresh_コンテンツをリセットするために使用されます。

2

  • myApp.pullToRefreshTrigger(ptrContent)*

これは、指定された_pullでリフレッシュしてコンテンツをリフレッシュするトリガーに使用されます_。

3

  • myApp.destroyPullToRefresh(ptrContent)*

destroy/disable pullを使用して、指定された_pullを更新してcontent_を更新します。

4

  • myApp.initPullToRefresh(ptrContent) *

initialize/enable pullを使用してコンテンツを更新します

_ptrContent_を使用して_HTMLElement_または_string_を使用して、コンテンツをプルして更新/トリガーまたは無効化/有効化します。

次の例は、ページコンテンツの更新を開始する更新コンポーネントの使用を示しています-

<!DOCTYPE html>
<html>
   <head>
      <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no, minimal-ui">
      <meta name="apple-mobile-web-app-capable" content="yes">
      <meta name="apple-mobile-web-app-status-bar-style" content="black">
      <title>Pull To Refresh</title>
      <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/framework7/1.4.2/css/framework7.ios.min.css">
      <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/framework7/1.4.2/css/framework7.ios.colors.min.css">
   </head>
   <div class="views">
      <div class="view view-main">
         <div class="pages">
            <div data-page="home" class="page navbar-fixed">
               <div class="navbar">
                  <div class="navbar-inner">
                     <div class="left"> </div>
                     <div class="center">Pull To Refresh</div>
                     <div class="right"> </div>
                  </div>
               </div>
               <div class="page-content pull-to-refresh-content">
                  <div class="pull-to-refresh-layer">
                     <div class="preloader"></div>
                     <div class="pull-to-refresh-arrow"></div>
                  </div>
                  <div class="list-block media-list">
                     <ul>
                        <li class="item-content">
                           <div class="item-media"><img src="/framework7/images/apple.png" width="44"></div>
                           <div class="item-inner">
                              <div class="item-title-row">
                                 <div class="item-title">apple</div>
                              </div>
                           </div>
                        </li>
                        <li class="item-content">
                           <div class="item-media"><img src="/framework7/images/froots_img.jpg" width="44"></div>
                           <div class="item-inner">
                              <div class="item-title-row">
                                 <div class="item-title">strawberry</div>
                              </div>
                           </div>
                        </li>
                        <li class="item-content">
                           <div class="item-media"><img src="/framework7/images/mango.jpg" width="44"></div>
                           <div class="item-inner">
                              <div class="item-title-row">
                                 <div class="item-title">Mango</div>
                              </div>
                           </div>
                        </li>
                     </ul>
                     <div class="list-block-label">
                        <p>Just pull page down to let the magic happen.</p>
                     </div>
                  </div>
               </div>
            </div>
         </div>
      </div>
   </div>
   <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/framework7/1.4.2/js/framework7.min.js"></script>
   <script>
      var myApp = new Framework7();

      var $$ = Dom7;

     //Dummy Content
      var fruits = ['mango', 'orange', 'watermelon', 'banana'];
     //Pull to refresh content
      var ptrContent = $$('.pull-to-refresh-content');
     //Add 'refresh' listener on it
      ptrContent.on('refresh', function (e) {
        //Emulate 2s loading
         setTimeout(function () {
            var picURL = 'images/Fruit.jpg' + Math.round(Math.random()* 100);
            var fruit = fruits[Math.floor(Math.random() * fruits.length)];
            var itemHTML = '<li class="item-content">' +
               '<div class="item-media"><img src="/framework7/images/Fruit.jpg" width="44"/></div>' +
               '<div class="item-inner">' +
               '<div class="item-title-row">' +
               '<div class="item-title">' + fruit + '</div>' +
                  '</div>' + '</div>' + '</li>';
           //Prepend new list element
            ptrContent.find('ul').prepend(itemHTML);

           //When loading done, we need to reset it
            myApp.pullToRefreshDone();
         }, 2000);
      });
   </script>
</html>

出力

上記のコードがどのように機能するかを確認するために次の手順を実行してみましょう-

  • 上記のHTMLコードを pull_to_refreshl ファイルとしてサーバーのルートフォルダーに保存します。
  • このHTMLファイルをhttp://localhost/pull_to_refreshlとして開くと、出力は以下のように表示されます。
  • ユーザーがプルダウンすると、ページがコンテンツで更新されます。