スワイプすると次のメニューポイントのコンテンツが表示され、現在のコンテンツが押し出される iPad 用のスワイプ メニューを構築しようとしています。
ただし、コンテンツがほとんどない場合 (または div 内の画像のみ) は非常に流暢です。しかし、よりコンパイルされた DOM を導入するとすぐに、タッチが有効になっている chrome で動作が遅くなり、ipad3 と ipad2 では使用できなくなります。
transform: translate3d を使用してハードウェア アクセラレーションを有効にしましたが、効果がないようです。パフォーマンスを向上させる他の方法はありますか。非常に滑らかなスワイプ アニメーションで非常に多くのコンテンツを表示する Web サイトをいくつか見たことがありますが (例: The Mobile Playbook )、同じ感覚を得ることができません。
jquery.event.swipeプラグインを使用して、この形式のコードを導入しました。
$(document).ready(function(){
var $swipeArea = $("#swipeBox"),
$pages = $swipeArea.find(".page"),
$currentPage = $(".currentPage"),
index = $pages.index($currentPage),
width = $swipeArea.width();
$swipeArea
.on('swipeleft', function(e){
if(index == $pages.length - 1 ) { return; }
$pages.eq(index+1).trigger('switchPage');
})
.on('swiperight', function(e){
if(index == 0) { return; }
$pages.eq(index-1).trigger('switchPage');
})
.on('switchPage', function(e){
$pages.eq(index).removeClass("currentPage");
$(e.target).addClass("currentPage");
index = $pages.index($(e.target))
});
このCSSを使用して:
.swipeContentArea .page{
-webkit-transform: translate3d(0,0,0);
-moz-transform: translate3d(0,0,0);
-ms-transform: translate3d(0,0,0);
-o-transform: translate3d(0,0,0);
transform: translate3d(0,0,0);
position:absolute;
left:-100%;
height:100%;
z-index:1;
overflow-x:hidden;
}
.swipeContentArea .page.currentPage{
left:0;
z-index:2;
}
.swipeContentArea .page.currentPage ~ .page {
left:100%;
}
と
transition-property: left,height;
transition-duration: 600ms;
CSS トランジションの swipeArea で。