vue paper library framework html5 canvas widget html5-canvas

html5 - library - paper js



HTML5 Canvas Library para UI Widgets (2)

He estado buscando una biblioteca que pueda ayudar en el renderizado y la funcionalidad de widgets UI incrustados en el área del lienzo, como cuadros combinados, casillas de verificación, botones de opción, áreas de texto, cuadros de lista con barras de desplazamiento, etc., sin superponer HTML normal elementos al flotar sobre el área del lienzo. Flex proporciona todo esto para Flash y existen muchas bibliotecas Actionscript que crean componentes de widgets UI dentro del "lienzo" Flash (por así decirlo). Estas bibliotecas de widgets de UI han servido bien a la comunidad de Flash en ciertas situaciones y esto también es necesario en situaciones análogas dentro del lienzo de HTML5.

¿Alguien sabe dónde se pueden encontrar estas bibliotecas?


Todavía no he visto ninguna biblioteca de widgets con funciones fallidas, pero les garantizo que se crearán algún día, aunque solo sea porque la gente las exigirá (por buenas o por malas).

La especificación HTML5 Canvas en sí misma recomienda no intentarlo. Como dice la especificación:

Los autores deben evitar implementar controles de edición de texto utilizando el elemento canvas. Hacerlo tiene una gran cantidad de desventajas:

  • La colocación del cursor en el mouse debe volver a implementarse.
  • El movimiento del teclado del cursor debe reimplementarse (posiblemente a través de líneas, para el ingreso de texto de líneas múltiples).
  • Se debe implementar el desplazamiento del campo de texto (horizontalmente para líneas largas, verticalmente para entrada de líneas múltiples).
  • Las características nativas como copiar y pegar tienen que volver a implementarse.
  • Las características nativas, como el corrector ortográfico, deben volver a implementarse.
  • Las características nativas, como arrastrar y soltar, tienen que volver a implementarse.
  • Las funciones nativas, como la búsqueda de texto en toda la página, deben volver a implementarse.
  • Las características nativas específicas del usuario, por ejemplo, los servicios de texto personalizados, tienen que volver a implementarse. Esto es casi imposible ya que cada usuario puede tener diferentes servicios instalados, y existe un conjunto ilimitado de dichos servicios.
  • La edición de texto bidireccional debe ser reimplementada.
  • Para la edición de texto multilínea, el ajuste de línea debe implementarse para todos los idiomas relevantes.
  • La selección de texto tiene que ser reimplementada.
  • El arrastre de las selecciones de texto bidireccionales tiene que volver a implementarse.
  • Los atajos de teclado nativos de la plataforma tienen que volver a implementarse.
  • Los editores de métodos de entrada (IME) nativos de la plataforma tienen que volver a implementarse.
  • La funcionalidad de deshacer y rehacer tiene que volver a implementarse.
  • Las funciones de accesibilidad, como el aumento después del cursor o la selección, tienen que volver a implementarse.

Implementar este tipo de cosas en Canvas es una pesadilla , especialmente hoy en día, donde la misma fuente parece diferente no solo por navegador, sino que se ve diferente entre Canvas que representa la fuente y el navegador que representa la fuente.


Zebra está bastante completo aunque Textarea no es muy rico.

Tiene licencia con la licencia LGPL .

El github para eso está here .