2011-08-02 10 views
21

Szukałem biblioteki, która może pomóc w renderowaniu i funkcjonowaniu widgetów interfejsu użytkownika osadzonych w obszarze obszaru roboczego, takich jak pola kombi, pola wyboru, przyciski opcji, pola tekstowe, pola listy za pomocą pasków przewijania itp. bez nakładania normalnych elementów HTML, przenosząc je na obszar obszaru roboczego. Flex zapewnia to wszystko dla Flasha i istnieje wiele bibliotek Actionscript, które tworzą składniki widżetów interfejsu użytkownika w "kanwie" Flasha (że tak powiem). Te biblioteki widgetów interfejsu obsługują dobrze społeczność Flash w określonych sytuacjach, co jest również potrzebne w analogicznych sytuacjach w obszarze roboczym HTML5.Biblioteka Canvas HTML5 dla widgetów interfejsu użytkownika

Czy ktoś wie, gdzie można znaleźć te biblioteki?

Odpowiedz

17

Zebra jest dość kompletny, chociaż Textarea nie jest zbyt bogaty.

Jest on licencjonowany z licencją LGPL.

Github to here.

+1

Absolutnie niesamowicie! – OCDev

+4

Jest licencjonowana jako LGPL teraz – draganstankovic

+0

A teraz jest licencjonowana na podstawie licencji Apache! – CrushedPixel

31

Jeszcze nie ma żadnych funkcjonalnych bibliotek widżetów interfejsu użytkownika, które widziałem, ale gwarantuję, że zostaną wykonane pewnego dnia, choćby dlatego, że ludzie będą ich żądać (z dobrych lub złych powodów).

Specyfikacja HTML5 Canvas zdecydowanie odradza próby jej wykonania. Zgodnie ze specyfikacją:

Autorzy powinni unikać stosowania elementów sterujących edytowaniem tekstu za pomocą elementu canvas. Powoduje to wiele wad:

  • Umieszczenie myszy w kamerze musi zostać ponownie zaimplementowane.
  • Ruch klawiaturowy karetki musi zostać ponownie zaimplementowany (prawdopodobnie w poprzek linii, dla wprowadzania tekstu wielowierszowego).
  • Przewijanie pola tekstowego musi zostać zaimplementowane (poziomo dla długich linii, pionowo dla wejścia wieloliniowego).
  • Funkcje rodzime, takie jak kopiuj i wklej, muszą zostać ponownie zaimplementowane.
  • Funkcje rodzime, takie jak sprawdzanie pisowni, muszą zostać ponownie zaimplementowane.
  • Funkcje rodzime, takie jak przeciąganie i upuszczanie, muszą zostać ponownie zaimplementowane.
  • Funkcje rodzime, takie jak wyszukiwanie tekstu na całej stronie, muszą zostać ponownie zaimplementowane.
  • Funkcje natywne charakterystyczne dla użytkownika, na przykład niestandardowe usługi tekstowe, muszą zostać ponownie zaimplementowane. Jest to prawie niemożliwe, ponieważ każdy użytkownik może mieć zainstalowane różne usługi i istnieje nieograniczony zestaw możliwych takich usług.
  • Dwukierunkowa edycja tekstu musi zostać ponownie zaimplementowana.
  • Do edycji tekstu wielowierszowego konieczne jest zaimplementowanie owijania liniowego dla wszystkich odpowiednich języków.
  • Wybór tekstu musi zostać ponownie zaimplementowany.
  • Przeciąganie dwukierunkowych tekstów musi zostać ponownie zaimplementowane.
  • Skróty klawiaturowe w natywnej platformie muszą zostać ponownie zaimplementowane.
  • Redaktorzy metody wprowadzania danych platformy (IME) platformy muszą zostać ponownie zaimplementowani.
  • Funkcje cofania i ponawiania należy ponownie wprowadzić.
  • Funkcje dostępności, takie jak powiększenie po kurcie lub selekcji, muszą zostać ponownie zaimplementowane.

Realizacja tego rodzaju rzeczy w płótnie to koszmar, szczególnie dzisiaj, w których ta sama czcionka wygląda inaczej nie tylko na przeglądarce, jednak wygląda inaczej między Płótno renderowania czcionek i przeglądarka renderowania czcionek.

+0

Widziałem kogoś na ## javascript w freenode, prezentując skrypt canvas, który emulował wygląd kontrolki interfejsu użytkownika Windows. To działało, ale najwyraźniej był to tylko eksperyment. Osobiście nie mogę wymyślić żadnego powodu, dlaczego musiałbyś to robić na płótnie, ponieważ możesz zrobić to o wiele razy łatwiej w HTML + CSS ... –

+2

Wiele z tych rzeczy nie musi być ponownie wdrażanych. I na rzeczy, które trzeba ponownie wprowadzić w życie ... cóż, to jest właśnie kwestia, która kryje się za pytaniami o biblioteki stron trzecich: Co tam zostało już ponownie wdrożone? :) Jednym z powodów, dla którego powinno to być zrobione w Canvas, jest projektowanie graficzne. Kolejny powód, być może twórca chce w jakiś sposób interakcji systemu cząstek z polem tekstowym. Prawdopodobnie myślę o dziesiątkach powodów, ale nałożenie na siebie elementów HTML na obszar canvas wydaje mi się brzydkim hackem, jak połączenie dwóch różnych paradygmatów. – OCDev

+3

Wielu programistów postrzega ponowne wdrażanie tych rzeczy w Canvas jako rzeczy, które są brzydkie. Masz oczywiście rację, nie wszystko można zrobić, nakładając na siebie elementy HTML (które i tak zwykle wyglądają brzydko). Ale wszyscy mamy nadzieję, że unikniemy tego rodzaju mdlących mechanizmów kontrolowania strony, które miały miejsce w erze Flash (strony internetowe od tego czasu prawie całkowicie przestały działać - na szczęście!). Żałuję, że nie mam takiej biblioteki, która wskaże ci kierunek, ale jedyny zespół, który ma bliżej zespołu Mozilla Bespin/Skywriter. Faktycznie skończyło się kompletnym porzuceniem płótna i połączeniem z Asem, który używa elementów div. –