Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Slider OOP jquery
Forum PHP.pl > Inne > Oceny
filem00n
Witam.

Trochę poczytałem o obiektowym programowaniu i staram się stawiać pierwsze kroki, nie wiem czy robię dobrze i czy idę w dobrym kierunku więc mam do was prośbę o wskazanie mi moich błędów, przedstawiam wam mój projekt slidera.

Slider Codepen
Comandeer
Te animacje wydają mi się jakoś za bardzo skomplikowane. Osobiście bawiłbym się jedynie klasami elementów slidera, a całą resztę przerzucił na transition w CSS

Slider.prototype.goNext, Slider.prototype.goPrev i Slider.prototype.firstSlide (BTW rzeczowniki są dobrymi nazwami własności; metody powinny mieć "czasownikowe" nazwy) mają dużo tego samego kodu - warto to wydzielić do uniwersalnej metody Slider.prototype.changeSlide

Strzałki w lewo i prawo zrobiłbym jako konfigurowalne części slidera (w końcu to de facto podstawowe elementy GUI). Nie rozumiem też czemu przed każdą zmianą slajdu jest wywoływane Slider.prototype.reset? I czemu ten reset jest średnio resetem? wink.gif

Środkowanie obrazka w pionie slidera na pewno da się załatwić lepiej niż przeliczać wszystko w JS (wyświetlanie tabelkowe, flexbox…) → http://howtocenterincss.com/

Osobiście przemyślałbym oparcie tego o jQuery → http://ponyfoo.com/articles/why-i-write-pl...ascript-modules
filem00n
Cytat(Comandeer @ 16.08.2015, 16:49:56 ) *
Te animacje wydają mi się jakoś za bardzo skomplikowane. Osobiście bawiłbym się jedynie klasami elementów slidera, a całą resztę przerzucił na transition w CSS

Slider.prototype.goNext, Slider.prototype.goPrev i Slider.prototype.firstSlide (BTW rzeczowniki są dobrymi nazwami własności; metody powinny mieć "czasownikowe" nazwy) mają dużo tego samego kodu - warto to wydzielić do uniwersalnej metody Slider.prototype.changeSlide

Strzałki w lewo i prawo zrobiłbym jako konfigurowalne części slidera (w końcu to de facto podstawowe elementy GUI). Nie rozumiem też czemu przed każdą zmianą slajdu jest wywoływane Slider.prototype.reset? I czemu ten reset jest średnio resetem? wink.gif

Środkowanie obrazka w pionie slidera na pewno da się załatwić lepiej niż przeliczać wszystko w JS (wyświetlanie tabelkowe, flexbox…) → http://howtocenterincss.com/

Osobiście przemyślałbym oparcie tego o jQuery → http://ponyfoo.com/articles/why-i-write-pl...ascript-modules



Co do nazw metod to faktycznie, popełniłem błąd, dzięki!

Reset ukrywa dany slajd by ten się mógł pojawić, czemu średnio jest resetem?

Masz jakieś zastrzeżenia, że jest to oparte o jquery?
Comandeer
Reset dla mnie to reset - przywraca slider do pierwotnej postaci. Ukrycie slajdu IMO to część procesu zmiany slajdu, nie resetu.

Tak, to, że jest oparte na jQuery wink.gif Obecnie coraz rzadziej trzeba używać takie monolityczne biblioteki. Jeśli cały projekt wykorzystuje jQ, to spoko - nie ma problemu. Ale jeśli jedynie slider miałby z tej biblioteki korzystać, to bym się nad nim zastanowił
filem00n
hmm..

Czyli, jeżeli potrzebuję javascript do pojedynczych rzeczy na stronie typu slider, proste animacje to lepiej używać jquery.
Oprócz slidera(mam jeszcze jeden pomysł na zakodowanie go w inny sposócool.gif planuję także napisanie prostego messengera w przeglądarce(dodawanie kontaktów, konwersacje, konferencje), w takim już większym projekcie powinienem się kierować pod jakiś framework js(np. backbonejs?) lub w czystym js napisać od początku swój "system"?
Będę wdzięczny za odpowiedź czy dobrze rozumuję brzydal.gif
Comandeer
Nie, właśnie odwrotnie. Jeśli potrzebujesz to pojedynczych rzeczy, to lepiej nie stosować jQuery.

Natomiast taki messenger osobiści bym zbudował na Web Components/komponentach Reacta. Natomiast zrobienie tego na frameworku typu Backbone.js też jest dobrym pomysłem
filem00n
Czyli taki slider napisać w czystym JS?

W takim razie do czego jest używane jQuery, do bardziej złożonych projektów?
Comandeer
Obecnie jQuery raczej jest powoli wycofywane, bo jego celem było naprawianie problemów z crossbrowserowym kodem: http://lea.verou.me/2015/04/jquery-considered-harmful/
Wciąż wiele projektów z niego korzysta, ale - jak mówiłem - raczej odchodzi się od tego typu monolitycznych rozwiązań.

Tak, spróbowałbym napisać taki slider w czystym JS.
filem00n
no to biorę się poważnie za js, natomiast teraz napisałem kolejnego slidera, o innym trochę działaniu, ale bardziej przyjaznego do edycji.
Jedynym jego mankamentem jest to, że przy zmianie wielkości przeglądarki slajdy się trochę gubią, ale przejście do następnego slajdu czy też odświeżenie naprawia problem, który na urządzeniach się nie pojawi, tylko na przeglądarce.
i dzięki za cenne rady!

https://preview.c9.io/filem00n/responsive_s...er_by_filem00n/
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.