2011-12-12 3 views
5

ボタンはモバイルでは遅いです(ドラッグの検出のために、ほとんどのブラウザでは少なくとも300msの遅延があります)。 Googleはこの問題を解決するには、いくつかのjavascriptを書いた: http://code.google.com/mobile/articles/fast_buttons.htmlバックボーンイベントでGoogleの/ MBPファストボタンコードを使用するには

モバイルHTML5ボイラープレートの人々は彼らのパッケージにこれを統合: https://github.com/h5bp/mobile-boilerplate/blob/master/js/mylibs/helper.js#L86

を私は簡単にバックボーンでこれを使用することができる方法を理解したいと思います。次のようなものがあります。

events: { 
    "fastbutton button.save": "save" 
} 

ここで、ファストボタンは、ファストボタンコードでクリックまたはマウスダウンを置き換えます。 MPB.fastbuttonコードを少し書き直す必要があると思います。誰もこれをやったことがありますか?

答えて

8

代わりにどこでも「fastbuttons」を作成するのではなく、それは透過的にイベントをクリックしてタッチを変換しますFastClickのようなライブラリを使用するために、おそらく正気ですタッチされた要素とその300ミリメートルの遅延を取り除く。

new FastClick(document.body)と同じくらい簡単で、準備は整いました。

クリックイベントが登録されている要素に遅延がないように、タッチイベントの動作がモバイルデバイス上で変更された場合、その1行のコードを変更するだけで、すべてのコードを変更して「ファーストボタン」を通常のボタンに変換します。保守性は常に良好です。

+1

私はそれをまだテストしていませんが、これは私が(まだ)必要としているものとまったく同じように思えます。 –

+0

ちょうど私のサンドボックスバックボーンのアプリでそれをテストしました - 記載どおりに動作します。 'document.body'全体に' FastClick'オブジェクトをインスタンス化する際にスケーラビリティの問題がありますか?ドキュメントには、特定の要素に関するクラスのインスタンス化の例だけが含まれています。 –

+1

FT Webアプリケーションは、 'document.body'でインスタンス化されたFastClickを使用していますが、問題はありません。おそらく私は、通常の習慣が身体のインスタンス化であることを明確にするために例を更新する必要があります。 –

1

私はかなり確信していますが、これはあなたが好きなように動作しません。 「fastclick」のように、追加のイベントを持つ代わりに、要素をfastButtonとして定義する必要があります。バックボーンの場合

new MBP.fastButton($("button.save"), function() { this.save(); }.bind(this)); 

、あなたは簡単にイベントの代わりに初期化()関数内でこれを行うことができますオブジェクト:あなたが実際にあなたが要素と、このようなコードを渡した上fastbuttonのインスタンスを作成する必要があります。

//申し訳ありませんが、ちょうどあなたが本当にこれを見ていないことを読んで:)

関連する問題