ちいつる

ナビ・リスト操作

引っ張って更新

リストを上端で下に引っ張るとインジケータが伸び、閾値を超えて離すと更新スピナーが回って新着が差し込まれる。SNS/ニュースアプリの定番ジェスチャー。

ENGLISH

Pull to Refresh

  • JS
93ナビ・リスト操作 の一覧 →

プレビュー

ドラッグ

操作ドラッグ/スワイプで操作できます(PC・スマホ対応)。

実装メモ

上端(scrollTop===0)で下方向に引いたときだけ、touchmove を passive:false で受けて preventDefault し、ネイティブのスクロール/オーバースクロールを奪って独自のインジケータを出します。引っ張り量は Math.pow(dy,0.85) で減衰させ“抵抗感”を作り、閾値超えで離すとスピナー回転→新着を先頭に差し込みます。PCではマウスのドラッグで擬似再現。実運用では更新処理を fetch などに置き換えてください。

コード(コピーして使えます)

<div class="ptr-frame">
  <div class="ptr-spinner" id="ptr-spinner"><span class="ptr-arrow" id="ptr-arrow">↓</span></div>
  <div class="ptr-scroll" id="ptr-scroll">
    <ul class="ptr-list" id="ptr-list">
      <li class="ptr-row"><span class="ptr-dot"></span>新しいコメントが届きました</li>
      <li class="ptr-row"><span class="ptr-dot"></span>山田さんがいいねしました</li>
      <li class="ptr-row"><span class="ptr-dot"></span>週末のイベント情報</li>
      <li class="ptr-row"><span class="ptr-dot"></span>フォロー中の更新まとめ</li>
      <li class="ptr-row"><span class="ptr-dot"></span>おすすめの記事3件</li>
      <li class="ptr-row"><span class="ptr-dot"></span>ポイントが付与されました</li>
    </ul>
  </div>
  <p class="ptr-hint">上端で下に引っ張る(PCはドラッグ)</p>
</div>

タグ

関連パーツ