Форум программистов, компьютерный форум, киберфорум
jQuery
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 06.12.2012
Сообщений: 55

Галерея изображений

19.12.2012, 19:25. Показов 1887. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть галерея изображений на jQuery (вот демо). Описание к изображениям выводится в той же рамке, что и изображение,
Кликните здесь для просмотра всего текста


а хотелось бы вывести описание снизу. То есть, сейчас так,
Кликните здесь для просмотра всего текста


а хотелось бы так.
Кликните здесь для просмотра всего текста


И удалить из галереи вот эту возможность.
Кликните здесь для просмотра всего текста


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

код HTML
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
<!DOCTYPE html>
<html lang="ru">
    <head>
        <title>Адаптивная галерея изображений | Материалы сайта RUSELLER.COM</title>
        <meta charset="UTF-8" />
        <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> 
        <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"> 
        <link rel="stylesheet" type="text/css" href="css/style.css" />
        <link href='http://fonts.googleapis.com/css?family=PT+Sans+Narrow&v1' rel='stylesheet' type='text/css' />
        <link href='http://fonts.googleapis.com/css?family=Pacifico' rel='stylesheet' type='text/css' />
        <noscript>
            <style>
                .es-carousel ul{
                    display:block;
                }
            </style>
        </noscript>
        <script id="img-wrapper-tmpl" type="text/x-jquery-tmpl">    
            <div class="rg-image-wrapper">
                {{if itemsCount > 1}}
                    <div class="rg-image-nav">
                        <a href="#" class="rg-image-nav-prev">Предыдущее изображение</a>
                        <a href="#" class="rg-image-nav-next">Следующее изображение</a>
                    </div>
                {{/if}}
                <div class="rg-image"></div>
                <div class="rg-loading"></div>
            <div class="rg-caption-wrapper">
                    <div class="rg-caption" style="display: none;">
                        <p></p>
                    </div>
            </div>
        </script>
    </head>
    <body>
        <div class="container">
            <div class="foto">
                <div id="rg-gallery" class="rg-gallery">
                    <div class="rg-thumbs">
                        <div class="es-carousel-wrapper">
                            <div class="es-nav">
                                <span class="es-nav-prev">Предыдущее</span>
                                <span class="es-nav-next">Следующее</span>
                            </div>
                            <div class="es-carousel">
                                <ul>
                                    <li><a href="#"><img src="img/thumbs/1.jpg" data-large="img/1.jpg" alt="image01" data-description="From off a hill whose concave womb reworded" /></a></li>
                                    <li><a href="#"><img src="img/thumbs/2.jpg" data-large="img/2.jpg" alt="image02" data-description="A plaintful story from a sistering vale" /></a></li>
                                    <li><a href="#"><img src="img/thumbs/3.jpg" data-large="img/3.jpg" alt="image03" data-description="A plaintful story from a sistering vale" /></a></li>
                                    <li><a href="#"><img src="img/thumbs/4.jpg" data-large="img/4.jpg" alt="image04" data-description="My spirits to attend this double voice accorded" /></a></li>
                                    <li><a href="#"><img src="img/thumbs/5.jpg" data-large="img/5.jpg" alt="image05" data-description="And down I laid to list the sad-tuned tale" /></a></li>
                                    <li><a href="#"><img src="img/thumbs/6.jpg" data-large="img/6.jpg" alt="image06" data-description="Ere long espied a fickle maid full pale" /></a></li>
                                    <li><a href="#"><img src="img/thumbs/7.jpg" data-large="img/7.jpg" alt="image07" data-description="Tearing of papers, breaking rings a-twain" /></a></li>
                                    <li><a href="#"><img src="img/thumbs/8.jpg" data-large="img/8.jpg" alt="image08" data-description="Storming her world with sorrow's wind and rain" /></a></li>
                                    <li><a href="#"><img src="img/thumbs/9.jpg" data-large="img/9.jpg" alt="image09" data-description="Upon her head a platted hive of straw" /></a></li>
                                    <li><a href="#"><img src="img/thumbs/10.jpg" data-large="img/10.jpg" alt="image10" data-description="Which fortified her visage from the sun" /></a></li>
                                    <li><a href="#"><img src="img/thumbs/11.jpg" data-large="img/11.jpg" alt="image11" data-description="Whereon the thought might think sometime it saw" /></a></li>
                                    <li><a href="#"><img src="img/thumbs/12.jpg" data-large="img/12.jpg" alt="image12" data-description="The carcass of beauty spent and done" /></a></li>
                                    <li><a href="#"><img src="img/thumbs/13.jpg" data-large="img/13.jpg" alt="image13" data-description="Time had not scythed all that youth begun" /></a></li>
                                    <li><a href="#"><img src="img/thumbs/14.jpg" data-large="img/14.jpg" alt="image14" data-description="Nor youth all quit; but, spite of heaven's fell rage" /></a></li>
                                    <li><a href="#"><img src="img/thumbs/15.jpg" data-large="img/15.jpg" alt="image15" data-description="Some beauty peep'd through lattice of sear'd age" /></a></li>
                                    <li><a href="#"><img src="img/thumbs/16.jpg" data-large="img/16.jpg" alt="image16" data-description="Oft did she heave her napkin to her eyne" /></a></li>
                                    <li><a href="#"><img src="img/thumbs/17.jpg" data-large="img/17.jpg" alt="image17" data-description="Which on it had conceited characters" /></a></li>
                                    <li><a href="#"><img src="img/thumbs/18.jpg" data-large="img/18.jpg" alt="image18" data-description="Laundering the silken figures in the brine" /></a></li>
                                    <li><a href="#"><img src="img/thumbs/19.jpg" data-large="img/19.jpg" alt="image19" data-description="That season'd woe had pelleted in tears" /></a></li>
                                    <li><a href="#"><img src="img/thumbs/20.jpg" data-large="img/20.jpg" alt="image20" data-description="And often reading what contents it bears" /></a></li>
                                    <li><a href="#"><img src="img/thumbs/21.jpg" data-large="img/21.jpg" alt="image21" data-description="As often shrieking undistinguish'd woe" /></a></li>
                                    <li><a href="#"><img src="img/thumbs/22.jpg" data-large="img/22.jpg" alt="image22" data-description="In clamours of all size, both high and low" /></a></li>
                                    <li><a href="#"><img src="img/thumbs/23.jpg" data-large="img/23.jpg" alt="image23" data-description="Sometimes her levell'd eyes their carriage ride" /></a></li>
                                    <li><a href="#"><img src="img/thumbs/24.jpg" data-large="img/24.jpg" alt="image24" data-description="As they did battery to the spheres intend" /></a></li>
                                </ul>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
        <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"></script>
        <script type="text/javascript" src="js/jquery.tmpl.min.js"></script>
        <script type="text/javascript" src="js/jquery.easing.1.3.js"></script>
        <script type="text/javascript" src="js/jquery.elastislide.js"></script>
        <script type="text/javascript" src="js/gallery.js"></script>
    </body>
</html>


код JS
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
$(function() {
    // ======================= Плагин imagesLoaded ===============================
    // [url]https://github.com/desandro/imagesloaded[/url]
 
    // $('#my-container').imagesLoaded(myFunction)
    // выполняет возвратный вызов, когда все изображения загружены.
    // Нужно потому, что .load() не работает на кэшированных изображениях.
 
    // Возвратная функция получает коллекцию изображений как аргумент.
 
    $.fn.imagesLoaded       = function( callback ) {
    var $images = this.find('img'),
        len     = $images.length,
        _this   = this,
        blank   = 'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///ywAAAAAAQABAAACAUwAOw==';
 
    function triggerCallback() {
        callback.call( _this, $images );
    }
 
    function imgLoaded() {
        if ( --len <= 0 && this.src !== blank ){
            setTimeout( triggerCallback );
            $images.unbind( 'load error', imgLoaded );
        }
    }
 
    if ( !len ) {
        triggerCallback();
    }
 
    $images.bind( 'load error',  imgLoaded ).each( function() {
        // Кэшированные изображения иногда не запускают загрузку, поэтому мы сбрасываем источник.
        if (this.complete || this.complete === undefined){
            var src = this.src;
            // Хак для webkit ( [url]http://groups.google.com/group/jquery-dev/browse_thread/thread/eee6ab7b2da50e1f[/url])
            // Обход предупреждения webkit
            this.src = blank;
            this.src = src;
        }
    });
 
    return this;
    };
 
    // Контейнер галереи
    var $rgGallery          = $('#rg-gallery'),
    // Контейнер карусели
    $esCarousel         = $rgGallery.find('div.es-carousel-wrapper'),
    // Пункт карусели
    $items              = $esCarousel.find('ul > li'),
    // Общее количество пунктов
    itemsCount          = $items.length;
    
    Gallery             = (function() {
            // Индекс текущего пункта
            var current         = 0, 
            // Режим : карусель || во весь экран
            mode            = 'carousel',
            // Проверка, если одно изображение загружено
            anim            = false,
            init            = function() {
                
                // (Не обязательно) предварительная загрузка изображений здесьы...
                $items.add('<img src="https://www.cyberforum.ru/images/ajax-loader.gif"/><img src="https://www.cyberforum.ru/images/black.png"/>').imagesLoaded( function() {
                    // Добавляем опции
                    _addViewModes();
                    
                    // Добавляем обертку большого изображения
                    _addImageWrapper();
                    
                    // Выводим первое изображение
                    _showImage( $items.eq( current ) );
                });
                
                // Инициализуем карусель
                _initCarousel();
                
            },
            _initCarousel   = function() {
                
                // Используем плагин elastislide:
                $esCarousel.show().elastislide({
                    imageW  : 65,
                    onClick : function( $item ) {
                        if( anim ) return false;
                        anim    = true;
                        // По нажатию клавиши мыши выводим изображение
                        _showImage($item);
                        // Меняем текущее
                        current = $item.index();
                    }
                });
                
                // Устанавливаем текушее для elastislide
                $esCarousel.elastislide( 'setCurrent', current );
                
            },
            _addViewModes   = function() {
                
                // Кнопки вверху справа: скрыть / показать карусель
                
                var $viewfull   = $('<a href="#" class="rg-view-full"></a>'),
                    $viewthumbs = $('<a href="#" class="rg-view-thumbs rg-view-selected"></a>');
                
                $rgGallery.prepend( $('<div class="rg-view"/>').append( $viewfull ).append( $viewthumbs ) );
                
                $viewfull.bind('click.rgGallery', function( event ) {
                    $esCarousel.elastislide( 'destroy' ).hide();
                    $viewfull.addClass('rg-view-selected');
                    $viewthumbs.removeClass('rg-view-selected');
                    mode    = 'fullview';
                    return false;
                });
                
                $viewthumbs.bind('click.rgGallery', function( event ) {
                    _initCarousel();
                    $viewthumbs.addClass('rg-view-selected');
                    $viewfull.removeClass('rg-view-selected');
                    mode    = 'carousel';
                    return false;
                });
                
            },
            _addImageWrapper= function() {
                
                // Добавляем структуру для больших изображений и кнопок навигации (если общее количество пунктов  > 1)
                                
                $('#img-wrapper-tmpl').tmpl( {itemsCount : itemsCount} ).appendTo( $rgGallery );
                
                if( itemsCount > 1 ) {
                    // Добавляем навигацию
                    var $navPrev        = $rgGallery.find('a.rg-image-nav-prev'),
                        $navNext        = $rgGallery.find('a.rg-image-nav-next'),
                        $imgWrapper     = $rgGallery.find('div.rg-image');
                        
                    $navPrev.bind('click.rgGallery', function( event ) {
                        _navigate( 'left' );
                        return false;
                    }); 
                    
                    $navNext.bind('click.rgGallery', function( event ) {
                        _navigate( 'right' );
                        return false;
                    });
                
                    // Добавляем событие touchwipe для обертки большого изображения
                    $imgWrapper.touchwipe({
                        wipeLeft            : function() {
                            _navigate( 'right' );
                        },
                        wipeRight           : function() {
                            _navigate( 'left' );
                        },
                        preventDefaultEvents: false
                    });
                
                    $(document).bind('keyup.rgGallery', function( event ) {
                        if (event.keyCode == 39)
                            _navigate( 'right' );
                        else if (event.keyCode == 37)
                            _navigate( 'left' );    
                    });
                    
                }
                
            },
            _navigate       = function( dir ) {
                
                // Навигация по большим изображениям
                
                if( anim ) return false;
                anim    = true;
                
                if( dir === 'right' ) {
                    if( current + 1 >= itemsCount )
                        current = 0;
                    else
                        ++current;
                }
                else if( dir === 'left' ) {
                    if( current - 1 < 0 )
                        current = itemsCount - 1;
                    else
                        --current;
                }
                
                _showImage( $items.eq( current ) );
                
            },
            _showImage      = function( $item ) {
                
                // Выводим большое изображение, которое ассоциировано с $item
                
                var $loader = $rgGallery.find('div.rg-loading').show();
                
                $items.removeClass('selected');
                $item.addClass('selected');
                     
                var $thumb      = $item.find('img'),
                    largesrc    = $thumb.data('large'),
                    title       = $thumb.data('description');
                
                $('<img/>').load( function() {
                    
                    $rgGallery.find('div.rg-image').empty().append('<img src="' + largesrc + '"/>');
                    
                    if( title )
                        $rgGallery.find('div.rg-caption').show().children('p').empty().text( title );
                    
                    $loader.hide();
                    
                    if( mode === 'carousel' ) {
                        $esCarousel.elastislide( 'reload' );
                        $esCarousel.elastislide( 'setCurrent', current );
                    }
                    
                    anim    = false;
                    
                }).attr( 'src', largesrc );
                
            };
        
        return { init : init };
    
    })();
 
    Gallery.init();
});
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
19.12.2012, 19:25
Ответы с готовыми решениями:

Галерея изображений
Доброе утро!Подскажите,пожалуйста.Я сделал по данному уроку галерею изображений : kS4sjNV_f2s (там есть код полный под видео) как...

Адаптивная галерея изображений
Как можно сделать чтобы просмотр фотографий на десктопе был самым обычным, при нажатии на картинку она увеличивалась и подобное. А как...

Галерея
Здравствуйте. Подскажите, пожалуйста, с помощью какого плагина можно сделать галерею как на рисунке ниже?

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
19.12.2012, 19:25
Помогаю со студенческими работами здесь

Галерея
Есть галерея. загруженная с инета. проблема в том, что вчера она запускалась, а сегодня нет. комп не видит часть кода. а конкретно: ...

Галерея
Вот есть такая простенькая ГАЛЕРЕЯ При клике на следующую картинку, она прокручивается на нее. Вот сам код прокрутки: ...

Галерея на сайт
Ребята, с jQuery должным образом не знаком, есть простая галерея, нужно сделать так чтобы картинка из нижнего дива всплывала вверх вместо...

Fancybox галерея
Как сделать чтобы в модальное окно подгружались картинки которые в теге &lt;a&gt;&lt;/a&gt; , сейчас главной выступает та которая в img , а по клику в...

Простейшая галерея
Подскажите самую простейшую галерейку без наворотов - только что бы раскрывалось окно и можно было по клику на кнопку вперед/назад листать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru