モバイル Web アプリケーションにZepto.jsを使用しています。Zepto にはswipe
、 、swipeLeft
などの便利なメソッドが付属していswipeRight
ます。
例:swipeLeft
左へのスワイプが完了すると、ジェスチャがトリガーされます。少なくとも私はそう見ています。
このスワイプジェスチャからライブ値で要素の位置を更新することは可能ですか?
そのため、ドキュメントをゆっくりと左にスワイプするときは、div.layer
一緒にゆっくりと移動したいと考えています。重要なポイントに到達するlayer
と、定義済みの位置にスナップする必要があります。
それはどういうわけか可能ですか?Zepto でそれが不可能な場合は、別のフレームワークを選択します。
私が今持っているもの
HTML
<div class="page-wrap">
<section class="layer" id="one">
</section>
<section class="layer" id="two">
</section>
</div>
CSS
.page-wrap {
position:relative;
width:100%;
height:100%;
}
.page-wrap .layer {
width:100%;
height:100%;
position:absolute;
top:0;
}
.page-wrap #one {
background:red;
}
.page-wrap #two {
left:-100%;
background:green;
}
JS
$(document).ready(function() {
$('#two').swipeRight(function(e) {
showInfos(true);
});
$('#one').swipeLeft(function(e) {
showInfos(false);
});
});
function showInfos(show) {
$("#two").animate({
left: show?'0':'-100%'
}, 200, 'ease-out');
}
これはうまくいきます!は.layer#two
、表示されているビューポートの外側に配置されています。右にスワイプすると.layer#one
、.layer#two
左からスライドインします。左にスワイプすると、左に.layer#two
スライド.layer#two
して戻ります。
これは、まさに私がアプリケーションに実行させたいことです。このパターンはよく知られており、多くのアプリがこの UI パターンを使用しています。
しかし、私がやりたいことは、携帯電話のネイティブアプリケーションが、.layer
sに沿って指をスライドさせると、s.layer
がユーザーの指に対する相対的な位置を更新するかのように動作することです。swipe
そのため、ジェスチャーが完了したらアニメーションを有効にしたくありません。スワイプしながらライブ更新しposition
たい。.layer#two
たぶん、どこかでライブテストしたいでしょう。上記のスニペットをjsfiddleに提供しました。
これについて何か助けていただければ幸いです。またはヒントとコツ。このようなことに興味を持っているのは私だけではないかもしれません。