2011-08-02 7 views
21

私は、コンボボックス、チェックボックス、ラジオボタン、テキストエリア、リストボックスなどのキャンバスエリアに埋め込まれたUIウィジェットのレンダリングと機能を助けるライブラリを探していましたスクロールバーなどを使用して、通常のHTML要素をキャンバス領域の上に浮かべて重ねることなく表示できます。 FlexはこれをすべてFlashに提供しています。Flashのキャンバス内にUIウィジェットコンポーネントを作成するActionscriptライブラリが数多くあります。これらのUIウィジェットライブラリは、特定の状況ではFlashコミュニティによく役立っており、これはHTML5キャンバス内の類似の状況でも必要です。UIウィジェット用のHTML5キャンバスライブラリ

誰でもこれらのライブラリがどこに見つかりますか?

答えて

17

Zebraはかなり完成度は高いですが、Textareaはあまり豊富ではありません。

ライセンスにはLGPLライセンスがあります。

ギブスはhereです。

+1

絶対に驚くべきことだ! – OCDev

+4

これはLGPLとして現在ライセンスされています – draganstankovic

+0

そして今はApacheライセンスの下でライセンスされています! – CrushedPixel

31

私が見たことのある脆弱性のあるUIウィジェットライブラリはまだありませんが、(良い理由と悪い場合に)人々がそれらを要求するためにのみ、それらがいつか作られることを保証します。

HTML5キャンバス仕様自体は、それをしようとすることに対して強くアドバイスします。仕様としては、

canvas要素を使用してテキスト編集コントロールを実装しないでください。そうすることには多くの欠点があります。

  • キャレットのマウス配置を再実装する必要があります。
  • キャレットのキーボード移動を再実装する必要があります(複数行のテキスト入力の場合は、複数行にわたることもあります)。
  • テキストフィールドのスクロールを実装する必要があります(長い行は水平方向、複数行入力は垂直方向)。
  • コピーアンドペーストなどのネイティブ機能を再実装する必要があります。
  • スペルチェックなどのネイティブ機能を再実装する必要があります。
  • ドラッグアンドドロップなどのネイティブ機能を再実装する必要があります。
  • ページ全体のテキスト検索などのネイティブ機能を再実装する必要があります。
  • カスタムテキストサービスなど、ユーザー固有のネイティブ機能を再実装する必要があります。これは、各ユーザーが異なるサービスをインストールしている可能性があり、そのような可能性のあるサービスの無制限のセットが存在するため、不可能に近づいています。
  • 双方向テキスト編集を再実装する必要があります。
  • 複数行のテキスト編集では、関連するすべての言語に対して行折り返しを実装する必要があります。
  • テキスト選択を再実装する必要があります。
  • 双方向テキスト選択のドラッグを再実装する必要があります。
  • プラットフォーム固有のキーボードショートカットを再実装する必要があります。
  • プラットフォーム固有の入力メソッドエディター(IME)を再実装する必要があります。
  • 元に戻す機能とやり直し機能を再実装する必要があります。
  • キャレットまたは選択後の拡大率などのアクセシビリティ機能を再実装する必要があります。キャンバスで物事のこれらの種類を実装する

同じフォントがないだけで、ブラウザごとに異なるように見えますが、フォントとフォントのレンダリングブラウザのレンダリングキャンバスの間で異なって見える悪夢、特に今日、です。

+0

freenodeの## javascriptの誰かが、Windows UIコントロールの外観をエミュレートするキャンバススクリプトを見せてくれました。それはうまくいったが、明らかに単なる実験であった。個人的には、HTML + CSSでbazillion倍簡単にできるので、キャンバスでそれを行う必要がある理由は何も考えられません。 –

+2

これらの多くのものは再実装する必要はありません。そして、再実装する必要のあるものについては...サードパーティのライブラリについて尋ねるのはまさにポイントです。すでにそこには何が再実装されていますか? :)これがキャンバスで行われるべき1つの理由は、グラフィカルな設計目的のためです。もう1つの理由は、おそらく、開発者はパーティクルシステムが何らかの方法でテキストボックスとやり取りすることを望んでいるからです。おそらく何十もの理由が考えられますが、HTML要素をキャンバス領域の上に重ねると、2つの異なるパラダイムをつなぎ合わせるような醜いハックのように思えます。 – OCDev

+3

多くのデベロッパーは、キャンバスでこのようなものを再実装することを醜いハックであると見ています。あなたは当然のことですが、HTML要素をスーパーインポーズすることですべてを行うことはできません(通常はとにかく醜いように見えます)。しかし、私たちは皆、Flash時代に起こったページコントロールを邪魔することを避けたいと思っています(そのウェブページはほとんどが完全に捨てられています - ありがたいことに!)私はあなたに向けてこのような図書館を持っていたいと思っています。 Mozilla Bespin/Skywriterチームが近づいてきました。彼らは実際にCanvasを完全に切り捨て、divを使用するAceとマージしました。 –

関連する問題