yaTouchSlider-タッチデバイス用のスライダー

QR-      «» タッチデバイスで知られている多くのモバイルサイトでは、スワイプジェスチャーの後、人が指を離した後にアニメーションが発生するようにスライダー(リーフレット)が配置されています。 これは、iOSデバイスのメイン画面などのネイティブスライダーほど美しくも便利でもありません。

スライダーをネイティブスライダーのように見えるようにするjQueryプラグインを作成し、興味のあるすべての人と共有したいと思います。 プラグインの動作は、たとえば、iPhoneやiPod Touchの新しい検索結果ページの天気や写真で確認できます

通常のCSS3 Transformとは異なり、「3D」はiOSでハードウェアGPUアクセラレーションを使用します。 これにより、非常にスムーズで楽しいアニメーションを実現できます。 アニメーション自体のハードウェアアクセラレーションのトピックは非常に広範囲であり、将来、このトピックに関する別の記事があります。

スライダーをネイティブに感じるために、多くの詳細を考慮しました。

ジェスチャー依存


スライダーがより活発に動作し、ジェスチャーからの期待に応えるために、加速を理解するように彼に教えました。 次の式で計算されます(その条件と値は実験的に選択されました)。

accel = speed > 0.3 && speed < 0.6 ? 2 :
speed >= 0.6 && speed < 1 ? 3 :
speed >= 1 ? 4 :
1;


ここで、速度とは、スワイプジェスチャーの開始から終了までの距離をその時間で割ったものです(学校の知識「v = s / t」が最終的に役立ちました:)

平均的なスワイプジェスチャは、ミリ秒あたり約0.4〜0.6ピクセルです。 CSSトランジションのアニメーション時間には、非常に小さいながらも顕著な変動があります。

animationTime = accel >= 3 ? '0.3' : '0.2';

その後、ステップに加速度の値が乗算され、アニメーションが発生します。

外部API


スライダーをブロックにアタッチするとき、コールバック関数を指定できます。 必要なすべてのデータ(速度、ステップ、制限、時間など)の転送セットでスワイプするたびに呼び出されます。 指を使用せずにスライダーを移動し、スライダーブロックでslideLeft([])またはslideRight([])イベントをトリガーすることもできます。

「GitHubでフォークしてください」


Githubのプロジェクトリポジトリでコメント付きのプラグインコードを表示またはダウンロードできます。

PS: Yandexインターフェース開発者の公式ブログに興味のあるすべての人を招待します

Source: https://habr.com/ru/post/J126117/


All Articles