>

Минимальная галерея (на величественном jQuery)

7 июня 2010 // Хельги

Я несколько лет выпиливал лобзиком, мучился, и хоть бы одна собака сказала мне про величественность jQuery! Ну то есть я, конечно, слышал это название, но насколько кардинально jQuery меняет клиентский скриптинг — честно говоря, не представлял.

Всё дело, собственно, в том, что меня заело сделать нормальную галерею для фоточек вместо той галереи в стиле конца девяностых, что у меня была. Как оказалось, ничего сложного нет.

Сам скрипт можно посмотреть здесь: gallery.js. Он очень простой и наверняка в некоторых местах неоптимальный, но меня на первый раз устраивает.

Первый кусок добавляет в DOM-дерево элементы для оверлея и всплывающего окна с картинкой. Функция set_position позиционирует и показывает окно с картинкой, а заодно и окно с текстом «Loading». Следующие три функции срабатывают при завершении загрузки картинки, щелчку по миниатюре и щелчку по кнопке закрыть или большой картинке, соответственно.

Кроме написаная самого скрипта, потребовалось чуть-чуть изменить скрипт генерации галереи. Вот что он выдаёт (курсивом помечены новые фрагменты):

<div style="float: left; margin: 0.5em; 
text-align: center; width: 150px; height: 160px"><a class="gallery"
href="/users/helgi/g/parade/images/dsc_5805.jpg">
<img src="/users/helgi/g/parade/thumbnails/dsc_5805.jpg" 
alt="dsc_5805.jpg" title="Голова первой колонны"></a><br>Голова первой колонны</div> 

И, конечно, пришлось дописать несколько строчек в таблицу стилей:

#gallery_overlay { position: absolute; left: 0; top: 0;
    opacity: 0.8; z-index: 900; background: black; display: none }
#gallery_image, #gallery_loading { position: absolute; display: none;
    z-index: 990; background: white; padding: 10px; 
    border: 1px black solid; width: auto }
#gallery_image a { float: right; padding: 2px 5px;
    cursor: default; border: 1px solid; font-size: larger }

На работающую галерею можно посмотреть, например, здесь.

P.S. Кстати, моё собственное правило о границах применимости клиентских скриптов соблюдено: очевидно, что без джаваскрипта всё будет работать как прежде.

Тэги: indiana, webdev
Комментарии (9)

Заводские уткиМатерия и дух

Обсуждение

1. Несвинка

Что-то у меня не работает из офиса. Firefox 3.5.9, если чем-то поможет.
NoScript есть, но я выбрала "Временно разрешить warmland.ru" — и все равно никак. :(

В IE8 тоже не работает :(

84.253.88.134   оставлено 7 июня 2010 в 12:24  

 

2. Несвинка

Теперь работает, после Ctrl+R.
Отлично смотрится :)

84.253.88.134   оставлено 7 июня 2010 в 15:50  

 

3. ruz

мне кажется, что в наше время браузеры без жаваскрипта -- это только какие-нибудь очень старые мобильные устройства, поэтому нет необходимости думать об этом.

82.200.130.22   оставлено 9 июня 2010 в 8:16  

 

4. Хельги (администратор)

Не, я не могу с тобой согласиться. Есть просто куча причин стараться делать хотя бы подмножество функциональности доступной без JavaScript.

Ну вот например, если считать как ты, то можно совсем за грань добра и зла уйти. Например, как было в ЖЖ некоторое время, сделать ссылки на другие страницы (обычные совершенно) через js, а не href. А ведь это сломает и lynx, и пауков (в том числе поисковых), да и семантика пресловутая окажется в загоне.

Но даже если мы говорим про мою галерею — вот ты попробуй на неё зайти со своего телефона. Будет она работать? Я не уверен. Может быть, было бы лучше, чтобы просто файлы открывались.

Кстати, про мобильники вообще интересный вопрос. У меня на смартфоне (Windows Mobile 6 Standard) js вообще не работает, открываются картинки целиком (что правильно, на самом-то деле). А ещё я Женю попросил глянуть на «айподе».

91.76.146.85   оставлено 9 июня 2010 в 23:12  

 

5. zloi

Я догадываюсь, что вместо "✖" должен идти какой-нибудь крестик, означающий "закрыть картинку", но у меня в файрфоксе показывается кракозябра )

95.59.115.103   оставлено 25 июля 2011 в 18:49  

 

6. Хельги (администратор)

У меня твой комментарий выглядит так:

/users/helgi/cross-char.png
(Chrome 12, Windows 7)

А можно увидеть твой скриншот, а также узнать версию файрфокса и ОС?

193.232.100.218   оставлено 25 июля 2011 в 20:00  

 

7. zloi

zloi.kz/extra/down/screen.jpg

firefox 5.0
windows xp SP 3

95.59.115.103   оставлено 25 июля 2011 в 20:10  

 

8. Хельги (администратор)

Спасибо.
А у меня на ведроиде, оказывается, квадратик выводится. Буду чинить.

83.149.9.50   оставлено 26 июля 2011 в 0:09  

 

9. zloi

и слева рядом с "Лучшее" тоже квадратик

95.59.105.187   оставлено 27 июля 2011 в 0:42  

 

Написать комментарий

На этот адрес будут приходить только уведомления о новых комментариях к этой записи.
Чтобы отправить комментарий, введите сюда слово «человек».
« » &nbsp;
Высота поля:
Разрывы строк (Enter) будут сохранены. HTML не работает. Гиперссылки: вставьте URL.

Ваш комментарий появится после одобрения модератором.