ďťż
Podstrony
|
telcocafeZacząłem tworzyć własną bibliotekę typu Lightbox. Mógłbym ją skończyć nawet w 1 dzień, ale ostatnio nie mam tak wielkiego zapału do klepania kodu jak dawniej i ciężko skoncentrować się nad całym zadaniem - może coś ze mną nie tak w ostatnich dniach / miesiącach. Zdaje się, że nie ma sensu wynajdywać koła na nowo, bo jest sporo dobrych skryptów. Większość jednak wymaga dużego frameworka.Dlaczego wolę bez frameworka? Może on kolidować z obecną standardową biblioteką (mikroframeworkiem) w rozwijanym przeze mnie skrypcie CMS. Na pewno problemy spowoduje dołączenie jQuery (inaczej implementuje funkcję $ i być może występują jakieś inne kolizje nazw). Nie sprawdzałem innych frameworków. Myślałem nad tym, aby przesiąść się całkowicie na frameworka, ale nie chcę za każdy razem ładować 50 KB kodu lub więcej. Poza tym pisząc od podstaw, można się więcej nauczyć :) Oczekiwane funkcje: + wyświetlanie obrazów (to oczywiście standard) + przewijanie dalej / wstecz za pomocą myszy lub klawiatury + podpis pod obrazkiem Dodatkowe atuty, które się przydadzą, ale nie są konieczne: + obsługa innych obiektów, np. filmów + pomniejszanie i powiększanie zdjęć, aby pasowały do szerokości ekranu + pokaz slajdów + automatyczne wykrywanie <a><img></a>, <a rel="">, <a href="png/jpg">... Animacje nie są potrzebne, ale ich obecność nie zaszkodzi. Znalazłem to: http://www.huddletog...jects/lightbox/ Jednak nie do końca spełnia moje oczekiwania. Jeśli nic nie znajdę, być może go użyję. Czy napotkaliście skrypty Lightbox, które spełniają moje wytyczne powyżej? Kiedyś pewnie i tak dokończę własną bibliotekę B) Użytkownik Ferrari edytował ten post 31 maj 2010, 00:22 Użyj jQuery zamiast wynajdywać koło na nowo. Jest to obecnie pewien standard dla JSowego frontendu i nie widzę powodów by z tego nie korzystać. Zyskujesz dostęp do stabilnej biblioteki i masy różnych wtyczek i gotowych rozwiązań. Stosując N niezależnych rozwiązań dość szybko dostajesz nadmiar kodu i znacznie większą szansę że dojdzie do konfliktów. http://orangoo.com/labs/GreyBox/ ;) ale miałem z tym problemy. Tak jak Riklaunim pisze - nie warto się męczyć. Skoro są biblioteki, które są przenośne i działają niezależnie od konfiguracji przeglądarki, a na stronie jest przewidziane wstawienie wielu skryptów, to należy z nich korzystać. Dodatkowo są to tylko 24KB jeśli chodzi o jQuery. Przejrzałem przed chwilą kod Thickboksa, z którego korzystam. Ma funkcje, których szukasz, ale jest to plugin do jQuery. Jednak kod nie jest na tyle zintegrowany z jQuery, że możesz przerobić go do wersji natywnej, ale to jest jedynie cofanie się w rozwoju :biggrin: Użytkownik andrzej_aa edytował ten post 31 maj 2010, 18:09 najwyżej wywołaj jQuery.noConflict(); i po kłopocie - szkoda życia na pisanie banalnych rzeczy od nowa, lepiej zająć się istotnymi problemami ;) To też chyba nie będzie działać, bo $() ogranicza się tylko do getElementById() Moja biblioteka: http://pastebin.com/g7dVdPBU Spędziłem nad nią trochę czasu, więc szkoda się jej pozbywać. Z drugiej strony gdybym zastosował dobry framework dla całego skryptu, mógłbym tworzyć interaktywny interfejs bez większego kombinowania, a do wyboru mam dużo skryptów napisanych dla nich (nie musiałbym ich sam pisać albo szukać rozwiązań niewymagających dużej biblioteki). Zastanowię się nad przejściem na jQuery, MooTools albo inną bibliotekę. Z pomocą ExtJS można budować interfejsy prawie jak w okienkowych aplikacjach, ale jest zbyt duży i pozostają kwestie licencyjne. Jeśli wywołasz noConflict, to jQuery przestaje korzystać ze zmiennej $, trzeba wtedy używać jQuery(selektor).cośtam(); dobre pluginy to uwzględniają. A poza tym nie będzie najprościej dopisać # z przodu, do parametrów wszystkich wywołań $(), wywalić tę jedną funkcję z Twojego JS i dołączyć jQuery? Co do interfaców okienkowych masz jQuery UI - extJS nie ma sensu :P Z pomocą ExtJS można budować interfejsy prawie jak w okienkowych aplikacjach, ale jest zbyt duży i pozostają kwestie licencyjne. ExtJS czy np. dhtmlx to pakiety widżetów do specyficznych aplikacji i raczej nie nadają się do skryptów ogólnego przeznaczenia. Jednak dobrze napisane skrypty dla jQuery działają przy jQuery.noConflict() B) (function($) { ... })(jQuery) Animacje w MooTools są szybsze - widać gołym okiem - ale z tego względu chyba wybiorę Slimbox dla jQuery. Jak sobie ustawisz tak szybkie będą animacje ;) Chodzi mi o płynność animacji. Jakimś cudem MooTools robi to lepiej w Firefoksie :) Kombinowałem z opcjami. Animacje w jQuery są czasami płynne (kiedy przeglądarka w ogóle nie jest obciążona), ale zazwyczaj lekko przycinają. Może to nie ma znaczenia. Mi animacje nie są w ogóle potrzebne, ale w skryptach Lightbox to już tradycja. Jednak w obecnej sytuacji zostaję przy wersji dla jQuery, bo ma funkcję noConflict() :) Użytkownik Ferrari edytował ten post 05 czerwiec 2010, 22:30 |
|||
Sitedesign by AltusUmbrae. |