Я с другом также помогали ребятам. Я правда работал лишь над фронт эндом небольшого сайта, выдающего нужные ключи нужным людям :) Но вот у него история поинтереснее. Он не может постить, так что выложу от его лица.
«Я работал над интеграцией игры с Steam. В процессе разработки мы реализовали часть функционала предоставляемого Steamworks. Когда все было готово, Патрик и Даниэль решили сделать реализацию модуля open source. Мы подготовили базовую документацию, оформили немного код и опубликовали репозиторий Greenworks. Может кому-нибудь будет интересно/полезно.»
Он, кстати, есть на хабре, но в read only режиме, так что если кто-то поделится с ним инвайтом, то он будет очень благодарен — ec.developer@gmail.com
Пробежался глазами. Не понравилось:
1. Структура. Стоило прибегнуть хоть к какому-то паттерну.
2. В коде определен метод «extend». Чем не угодил $.extend?
3. Никаких namespace-ов у event-ов.
4. Ужасная производительность при большом количестве option-ов, судя по коду. Из каждого option создается объект, который аппендится к списку.
и тд
OS X, Safari:
1. По табу селект не выбрать;
2. пробел при открытом селекте прокручивает страницу;
3. отстутствие эвентов/колбэков;
4. отстутствие API;
5. нет поддержки optgroup
Да и вообще сам плагин сомнительного качества. Не предлагаю посмотреть в сторону моего ikSelect.
Уперся сейчас в проблему с лишним отступом снизу у обворачивающего блока. Пробежался по примерам из комментов — у всех та же проблема, кроме этого варианта
Долго мучался, ища разницу. В итоге оказалось, что с xhtml доктайпом отступа нету, если же использовать html5 доктайп, то он появляется.
В одном из примеров этот отступ убрали, дописав «margin-bottom:-0.7em». Неудачное решение, так как используется по сути подогнанная цифра.
Сам же ничего, кроме как установить «line-height: 0» для обертки, не нашел. Такое решение совсем не нравится, но ничего лучше не придумалось.
Ага, под маком. Даже не подумал, что это может зависеть от ОС.
Про разметку можно было просто отписать в «issues» на «github». Вполне все логично, придумал бы что-нибудь. Тем более у меня вроде бы ничего не завязано на положении оригинального селекта, так что по идее его можно легко перетащить в нужное место. )
Как автору ikSelect, интересно что не так с разметкой? По сути все так же, разве что optgroup выношу в отдельные ul>li, насколько я помню, что вроде бы даже логичнее )
Из багов первое что проверил это стрелки в вебките и они неправильно работают. img.i10k.ru/3jc
Всплывает нативный дропдаун, причем почему-то слишком широкий. Схожая проблема и в плагине «Selectik», правда там этот дропдаун так сильно не растягивает )
Подробнее тестить лень, но в целом все выглядит хорошо. )
Не сделал только исчезание дропдауна при клике вне окна браузера, так как не придумал реализации которая бы ничего не сломала. Но думаю, что это не такая критичная фича. )
1. Подробнее про первое? Только что проверил в сафари и фф — прекрасно все выбирается с помощью Tab.
2. Незакрытие селекта по Tab позаимствовал у сафари. Мне показалось это правильнее. Хотя стоит поправить это поведение для других браузеров. Сделаю.
3. Ээээ… может быть я что-то не знаю о яваскрипт, но вроде бы никаких событий не передается при клике за браузером…
Opera 11.61 — все нормально… возможно проблема в винде…
Еще раз повторюсь, что реализованный вид селекта — просто пример… Никто не мешает прописать свой код селекту и в использовать кроссбраузерные и кросОСные картинки для стрелок )
«Я работал над интеграцией игры с Steam. В процессе разработки мы реализовали часть функционала предоставляемого Steamworks. Когда все было готово, Патрик и Даниэль решили сделать реализацию модуля open source. Мы подготовили базовую документацию, оформили немного код и опубликовали репозиторий Greenworks. Может кому-нибудь будет интересно/полезно.»
Он, кстати, есть на хабре, но в read only режиме, так что если кто-то поделится с ним инвайтом, то он будет очень благодарен — ec.developer@gmail.com
По-моему,
$.extend(CreateClone.prototype, SelectToggle.prototype)
вполне справился бы в данном случае.Я бы не судил, если б не делал свой плагин для селектов и не столкнулся бы с данной проблемой.
1. Структура. Стоило прибегнуть хоть к какому-то паттерну.
2. В коде определен метод «extend». Чем не угодил $.extend?
3. Никаких namespace-ов у event-ов.
4. Ужасная производительность при большом количестве option-ов, судя по коду. Из каждого option создается объект, который аппендится к списку.
и тд
1. По табу селект не выбрать;
2. пробел при открытом селекте прокручивает страницу;
3. отстутствие эвентов/колбэков;
4. отстутствие API;
5. нет поддержки optgroup
Да и вообще сам плагин сомнительного качества. Не предлагаю посмотреть в сторону моего ikSelect.
Долго мучался, ища разницу. В итоге оказалось, что с xhtml доктайпом отступа нету, если же использовать html5 доктайп, то он появляется.
В одном из примеров этот отступ убрали, дописав «margin-bottom:-0.7em». Неудачное решение, так как используется по сути подогнанная цифра.
Сам же ничего, кроме как установить «line-height: 0» для обертки, не нашел. Такое решение совсем не нравится, но ничего лучше не придумалось.
Про разметку можно было просто отписать в «issues» на «github». Вполне все логично, придумал бы что-нибудь. Тем более у меня вроде бы ничего не завязано на положении оригинального селекта, так что по идее его можно легко перетащить в нужное место. )
Из багов первое что проверил это стрелки в вебките и они неправильно работают. img.i10k.ru/3jc
Всплывает нативный дропдаун, причем почему-то слишком широкий. Схожая проблема и в плагине «Selectik», правда там этот дропдаун так сильно не растягивает )
Подробнее тестить лень, но в целом все выглядит хорошо. )
Не сделал только исчезание дропдауна при клике вне окна браузера, так как не придумал реализации которая бы ничего не сломала. Но думаю, что это не такая критичная фича. )
Вроде ниче не пропустил.
2. У предпочитаемого браузера )))
3. My bad. Был уверен, что они стреляют только на клики в пределах документа. Исправлю.
Итог: 3 из 3 указанных багов исправлю ))
В фф удалось повторить баг с высотой, исправлю.
На счет подвешивания страницы пока ничего сказать не могу.
Забыл про shift+tab ) сделаю обязательно )
2. Незакрытие селекта по Tab позаимствовал у сафари. Мне показалось это правильнее. Хотя стоит поправить это поведение для других браузеров. Сделаю.
3. Ээээ… может быть я что-то не знаю о яваскрипт, но вроде бы никаких событий не передается при клике за браузером…
Еще раз повторюсь, что реализованный вид селекта — просто пример… Никто не мешает прописать свой код селекту и в использовать кроссбраузерные и кросОСные картинки для стрелок )