![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 83 Pomógł: 7 Dołączył: 3.02.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Na wstępie chcialbym zaznaczyć, że stworzenie tego nie nastręcza mi problemów. Bardziej nie daje mi spokoju czy aby nie robię tego jakoś naokoło, nieoptymalnie. Być może istnieje jakiś wygodniejszy nieoczywisty dla mnie sposób? http://jsfiddle.net/WiruSSS/zPXUK/ |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 205 Pomógł: 43 Dołączył: 5.03.2012 Ostrzeżenie: (0%) ![]() ![]() |
Kilka spraw odnośnie tego kodu:
- nie dajesz osobie korzystającej z tej klasy "SlideMenu" możliwości wybrania tego co będzie sliderem. - "Własnie chciałem uniknąć tutaj tworzenia nowych obiektów przypisanych konkretnemu menu" - to kompletnie błędne rozumowanie, właśnie o to chodzi, że każde menu to osobny obiekt - nie CSS decyduje o tym po której stronie ma być slider. Tu mieszasz reprezentację z logiką. To skrypt ma decydować po której stronie ma być slider. Cytat Chciałbym uniknąć zbędnej konfiguracji, wolałbym aby wszystkie menu uruchamiały się automatycznie w zależnosci do której strony okna przylegają (wiadomo, że o to aby menu przylegało do konkretnej strony, będzie musiał sobie zadbać programista korzystający ze skryptu, definiując to w arkuszu stylów za pomoca position lub float) Jak wyżej plus jeszcze jedno - właśnie o to chodzi, że pisząc jakikolwiek kod który ma być ponownie użyty - musisz udostępnić zmienne konfiguracyjne. Programista (kod kliencki) sam decyduje jaki plugin / bibliotekę chce użyć - i robi to w $.ready(). Ty tylko tworzysz funkcjonalność, dając mu do dyspozycji zmienne konfiguracyjne. Tutaj pojawia się też jeszcze jedna wada Twojego podejścia - że w CSS chcesz zawrzeć logikę tego skryptu. Rozbijasz API na CSS i JS, co już jest nie do przyjęcia. Jeśli już chcesz odpalać menu "hurtem" to albo pozwól na to programiście albo utwórz nową klasę, która będzie zarządzać instancjami menu. Wzorzec fabryki na nic tutaj się nie zda - nie do tego służy. Tutaj jest kod: http://jsfiddle.net/a4Bpv/3/ powinien działać w wersji bez głupiego "JsFiddle", w czystym HTMLu. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 14.10.2025 - 17:30 |