モバイルWebブラウザでHTMLとJavaScriptを使って「引っ張って更新(プルダウンリフレッシュ)」を実装する方法
プルダウンリフレッシュとは
スマートフォンのアプリでおなじみの「引っ張って更新(プル・トゥ・リフレッシュ)」機能。画面を指で下に引っ張るとページが再読み込みされ、最新の情報を取得できる便利なUIです。モバイルWebブラウザでも、JavaScript・XMLHttpRequest(XHR)・タッチイベントを組み合わせることで、この機能を実装できます。
プルダウンリフレッシュは、AJAXにおけるXHRリクエストのトリガーとして動作します。ユーザーが画面を引っ張ると新しいデータが取得され、対象の要素へと追加される仕組みです。
主な実装方法
1. iScrollを活用する方法
代表的な実装手法のひとつが、iScrollのようにJavaScriptのネイティブなスクロール機構をハイジャック(制御を奪う)するアプローチです。実際にTwitterも、プルダウンリフレッシュ機能のためにiScrollを採用しています。スクロール挙動を完全にコントロールできるため、滑らかで自然な引き操作を実現できます。
2. overflow:scroll コンポーネントにリフレッシュハンドラを作成する
もうひとつの方法は、CSSの overflow: scroll が適用されたコンポーネントに対して、独自のリフレッシュハンドラを定義するやり方です。ライブラリに依存せず、比較的シンプルに導入できるのが特徴です。
以下のコードは、そのハンドラインターフェースの設計イメージを示したものです。
var PullToRefresh = function(callback, wrapper, instructionsText) {
// DOM要素を生成し、コンテンツラッパーの直前に挿入する
// マークアップは以下の構造になる
// <div class="mainWrapper" style="overflow: scroll; height: 600px;">
// <div class="pullToReloadWrapper"></div>
// <div class="contentWrapper"></div>
// </div>
// メインラッパーの高さがコンテンツラッパーより大きい場合は、
// メインラッパーの高さをコンテンツラッパーの高さに合わせて調整する
// メインラッパーをスクロール可能にする
// initializeEvents() を呼び出して各種イベントを初期化する
};まとめ
プルダウンリフレッシュは、タッチイベントで引っ張りの操作を検知し、XHRで最新データを取得してDOMに反映させるという流れで実装します。iScrollのようなライブラリを使えば手軽に高品質な操作感を得られますし、overflow: scroll を使った自作ハンドラなら軽量に構築できます。用途やプロジェクトの規模に応じて、最適な方法を選択しましょう。
-
【Ubuntu】デフォルトのWebブラウザを変更する2つの方法(コマンド・設定アプリ)
Ubuntu LinuxでデフォルトのWebブラウザを変更する方法は、大きく分けて2つあります。ひとつはコマンドラインを使う方法、もうひとつは「設定」アプリを使う方法です。Ubuntuには複数のブラウザをインストールできますが、その場合、リンクをクリックしたときに開くブラウザを別のものへ切り替えたい場面が出てくることがあります。ここでは、誰でも簡単に実行できる2つの方法を、手順に沿ってわかりやすく解説します。方法1:コマンドラインからデフォルトブラウザを変更する例として、現在Chromiumがデフォルトブラウザになっている環境を、Firefoxへ変更する手順を紹介します。ここではUbuntu標
-
Windows 11で既定のWebブラウザーを変更する方法【Chromeなどへの切り替え手順を解説】
現在ベータ版として提供されているWindows 11には、従来とは大きく異なる点が数多くあります。Windows 10と比較すると、デザインが刷新され、標準アプリにも変更が加えられています。その中でも最近特に議論を呼んでいるのが、既定のWebブラウザーの変更方法です。Microsoftは(現時点では)ワンクリックでブラウザーを切り替える機能をWindows 11から削除しており、ファイルの関連付けを個別に変更することでしか既定のブラウザーを設定できない仕様になっています。 この変更について、The VergeのTom Warren氏は「Microsoftが次世代OSにおいて、既定のWebブラウ