Форум программистов, компьютерный форум, киберфорум
jQuery
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
3 / 3 / 2
Регистрация: 25.04.2014
Сообщений: 87

Несколько галерей используя Hide/Show

01.07.2016, 23:43. Показов 1408. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ребят задача такова: Есть галерея на странице, работает через js по принципу уменьшению масштаба и видимости, требуется создать сверху над галереей кнопки, чтобы при нажатии на определенную кнопку появлялась галерея с тематикой кнопки, а другие уходили в Hide. 4 День сижу над сайтом голова пухнет, где то накосячил в коде скину ссылку на страницу где делаю и куски кода.

Ссылка: http://gk-ksr.ru/index.php?id=5#

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
85
86
87
88
89
90
<div class="menuwork">
    <ul>
        <li id="#sm1">Архитектура</li>
        <li id="#sm2">Строительство</li>
        <li id="#sm3">Материалы</li>
        <li id="#sm4">Отделка</li>
        <li id="#sm5">Инженерия</li>
        <li id="#sm6">Автоматизация</li>
    </ul>
</div>
<div class="submenutext">*</div>
<div class="wrapper">
    <div id="ei-slider" class="ei-slider">
        <ul class="ei-slider-large">
            <li><img src="assets/gk-ksr/images/gal/large/6.jpg" alt="image06" />
                <div class="ei-title">
                    <h2>Passionate</h2>
                    <h3>Seeker</h3>
                </div>
            </li>
            <li><img src="assets/gk-ksr/images/gal/large/1.jpg" alt="image01" />
                <div class="ei-title">
                    <h2>Creative</h2>
                    <h3>Geek</h3>
                </div>
            </li>
            <li><img src="assets/gk-ksr/images/gal/large/2.jpg" alt="image02" />
                <div class="ei-title">
                    <h2>Friendly</h2>
                    <h3>Devil</h3>
                </div>
            </li>
            <li><img src="assets/gk-ksr/images/gal/large/3.jpg" alt="image03" />
                <div class="ei-title">
                    <h2>Tranquilent</h2>
                    <h3>Compatriot</h3>
                </div>
            </li>
            <li><img src="assets/gk-ksr/images/gal/large/4.jpg" alt="image04" />
                <div class="ei-title">
                    <h2>Insecure</h2>
                    <h3>Hussler</h3>
                </div>
            </li>
            <li><img src="assets/gk-ksr/images/gal/large/5.jpg" alt="image05" />
                <div class="ei-title">
                    <h2>Loving</h2>
                    <h3>Rebel</h3>
                </div>
            </li>
            <li><img src="assets/gk-ksr/images/gal/large/7.jpg" alt="image07" />
                <div class="ei-title">
                    <h2>Photography by</h2>
                    <h3><a href="http://www.behance.net/gallery/Masks/774805" target="_blank">Bartek Lurka</a></h3>
                </div>
            </li>
        </ul>
        <!-- ei-slider-large -->
        <ul class="ei-slider-thumbs">
            <li class="ei-slider-element">Current</li>
            <li><a href="#">Slide 6</a><img src="assets/gk-ksr/images/gal/thumbs/6.jpg" alt="thumb06" /></li>
            <li><a href="#">Slide 1</a><img src="assets/gk-ksr/images/gal/thumbs/1.jpg" alt="thumb01" /></li>
            <li><a href="#">Slide 2</a><img src="assets/gk-ksr/images/gal/thumbs/2.jpg" alt="thumb02" /></li>
            <li><a href="#">Slide 3</a><img src="assets/gk-ksr/images/gal/thumbs/3.jpg" alt="thumb03" /></li>
            <li><a href="#">Slide 4</a><img src="assets/gk-ksr/images/gal/thumbs/4.jpg" alt="thumb04" /></li>
            <li><a href="#">Slide 5</a><img src="assets/gk-ksr/images/gal/thumbs/5.jpg" alt="thumb05" /></li>
            <li><a href="#">Slide 7</a><img src="assets/gk-ksr/images/gal/thumbs/7.jpg" alt="thumb07" /></li>
        </ul>
        <!-- ei-slider-thumbs -->
    </div>
    <!-- ei-slider -->
</div>
<ul>
    <!-- wrapper -->
</ul>
<div class="submenutext">
    <p>2</p>
</div>
<div class="submenutext">
    <p>3</p>
</div>
<div class="submenutext">
    <p>4</p>
</div>
<div class="submenutext">
    <p>5</p>
</div>
<div class="submenutext">
    <p>6</p>
</div>
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
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.0/jquery.min.js"></script>
<script type="text/javascript" src="assets/gk-ksr/js/jquery.eislideshow.js"></script>
<script type="text/javascript" src="assets/gk-ksr/js/jquery.easing.1.3.js"></script>
<script type="text/javascript">
    // <![CDATA[
    $(function() {
        $('#ei-slider').eislideshow({
            animation: 'center',
            autoplay: true,
            slideshow_interval: 3000,
            titlesFactor: 0
        });
    });
    // ]]>
 
</script>
<script type="text/javascript">
    // <![CDATA[
    $(document).ready(function() {
        $("div.submenutext").hide();
 
        $("div.submenutext:first").show();
        $(".menuwork li").click(function() {
            $(".menuwork li").removeClass("tabactive");
            $(this).addClass("tabactive");
            $("div.submenutext").hide();
            var activeDiv = $(this).attr("id");
            $(activeDiv).fadeIn();
            return false;
        });
    });
    // ]]>
</script>
CSS
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
.menuwork{
    width:100%;
}
.menuwork ul{
    margin-top:20px;
    text-align: center;
}
.menuwork a{
    color:#fff;
}
.menuwork li{
    cursor: pointer;
    display: inline;
    *display:inline
    margin-right: 5px;
    width: 90%;
    padding: 15px 15 0 15;
    line-height: 18px;
    background-color: #058cc7;
    font-weight: bold;
    font-size: 14px;
    color:#fff;
    text-transform: uppercase;
    text-shadow: 0 1px rgba(0,0,0,0.1);
    box-shadow: 0 0 3px rgba(0,0,0,0.3);
    opacity:0.9;
    cursor:default;
    -webkit-transition: opacity 0.4s;
    -moz-transition: opacity 0.4s;
    transition: opacity 0.4s;
}
.ei-slider{
    position: relative;
    width: 100%;
    max-width: 1920px;
    height: 400px;
    margin: 0 auto;
}
.ei-slider-loading{
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0px;
    left: 0px;
    z-index:999;
    background: rgba(0,0,0,0.9);
    color: #fff;
    text-align: center;
    line-height: 400px;
}
.ei-slider-large{
    height: 100%;
    width: 100%;
    position:relative;
    overflow: hidden;
}
.ei-slider-large li{
    position: absolute;
    top: 0px;
    left: 0px;
    overflow: hidden;
    height: 100%;
    width: 100%;
}
.ei-slider-large li img{
    width: 100%;
}
.ei-title{
    position: absolute;
    right: 50%;
    margin-right: 13%;
    top: 30%;
}
.ei-title h2, .ei-title h3{
    text-align: right;
}
.ei-title h2{
    font-size: 40px;
    line-height: 50px;
    font-family: 'Playfair Display', serif;
    font-style: italic;
    color: #b5b5b5;
}
.ei-title h3{
    font-size: 70px;
    line-height: 70px;
    font-family: 'Open Sans Condensed', sans-serif;
    text-transform: uppercase;
    color: #000;
}
.ei-slider-thumbs{
    height: 13px;
    margin: 0 auto;
    position: relative;
}
.ei-slider-thumbs li{
    position: relative;
    float: left;
    height: 100%;
}
.ei-slider-thumbs li.ei-slider-element{
    top: 0px;
    left: 0px;
    position: absolute;
    height: 100%;
    z-index: 10;
    text-indent: -9000px;
    background: #000;
    background: rgba(0,0,0,0.9);
}
.ei-slider-thumbs li a{
    display: block;
    text-indent: -9000px;
    background: #666 ;
    width: 100%;
    height: 100%;
    cursor: pointer;
    -webkit-box-shadow: 
        0px 1px 1px 0px rgba(0,0,0,0.3), 
        0px 1px 0px 1px rgba(255,255,255,0.5);
    -moz-box-shadow: 
        0px 1px 1px 0px rgba(0,0,0,0.3), 
        0px 1px 0px 1px rgba(255,255,255,0.5);
    box-shadow: 
        0px 1px 1px 0px rgba(0,0,0,0.3), 
        0px 1px 0px 1px rgba(255,255,255,0.5);
    -webkit-transition: background 0.2s ease;
    -moz-transition: background 0.2s ease;
    -o-transition: background 0.2s ease;
    -ms-transition: background 0.2s ease;
    transition: background 0.2s ease;
}
.ei-slider-thumbs li a:hover{
    background-color: #f0f0f0;
}
.ei-slider-thumbs li img{
    position: absolute;
    bottom: 50px;
    opacity: 0;
    z-index: 999;
    -webkit-transition: all 0.4s ease;
    -moz-transition: all 0.4s ease;
    -o-transition: all 0.4s ease;
    -ms-transition: all 0.4s ease;
    transition: all 0.4s ease;
    -webkit-box-reflect: 
        below 0px -webkit-gradient(
            linear, 
            left top, 
            left bottom, 
            from(transparent), 
            color-stop(50%, transparent), 
            to(rgba(255,255,255,0.3))
            );
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
}
.ei-slider-thumbs li:hover img{
    opacity: 1;
    bottom: 13px;
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
}
@media screen and (max-width: 830px) {
    .ei-title{
        position: absolute;
        right: 0px;
        margin-right: 0px;
        width: 100%;
        text-align: center;
        top: auto;
        bottom: 10px;
        background: #fff;
        background: rgba(255,255,255,0.9);
        padding: 5px 0;
    }
    .ei-title h2, .ei-title h3{
        text-align: center;
    }
    .ei-title h2{
        font-size: 20px;
        line-height: 24px;
    }
    .ei-title h3{
        font-size: 30px;
        line-height: 40px;
    }
}
 
#menu {
margin-top: -5px;
width: 180px;
height: 60px;
background-repeat : no-repeat;}
 
#menu span {
text-align:left;
display:block;
color:#000000;
margin: 7px 0;
padding: 11px;
}
#submenu, #menu span {
    border-radius:5px;
    -webkit-border-radius:5px;
    -khtml-border-radius:5px;
    -moz-border-radius:5px;
    -o-border-radius:5px;
background:#efeff0;
}
 
#menu .tabactive {
color: #000000;
    background:#777777;
}
 
#submenu {
padding: 3px;
height: 180px;
text-align: center;
font-size: 12px;
width: 540px;
}
 
.submenutext {
display: none; 
height: 40px;
}
Спасайте ребят
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
01.07.2016, 23:43
Ответы с готовыми решениями:

.show & .hide
Здравствуйте! Есть 2 div'a. Один, допустим &quot;attack&quot; открыт, а другой - &quot;guard&quot; скрыт стилем &quot;display: none&quot;. Нужно,...

Функция .show hide
Всем привет. Сразу скажу, что в jquery и javascript я не разбираюсь. Дана вот такая кнопка &lt;input type=&quot;button&quot;...

Show/hide при клике
Начинаю веикать в jquery. Вот какая проблемма: нужно при клике на елемент показать контейнер и добавить к нему класс active. При втором...

15
Ренегат
Эксперт HTML/CSS
 Аватар для BANO
1740 / 1085 / 386
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
02.07.2016, 00:12
Лучший ответ Сообщение было отмечено supdecar как решение

Решение

supdecar, у тебя же тупо id шников нету

Добавлено через 3 минуты
CDATA зачем?

Добавлено через 3 минуты
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<div id="#sm1" class="submenutext">*</div>
<div id="#sm2" class="submenutext">
    <p>2</p>
</div>
<div id="#sm5" class="submenutext">
    <p>3</p>
</div>
<div id="#sm4" class="submenutext">
    <p>4</p>
</div>
<div id="#sm5" class="submenutext">
    <p>5</p>
</div>
<div id="#sm6" class="submenutext">
    <p>6</p>
</div>
1
3 / 3 / 2
Регистрация: 25.04.2014
Сообщений: 87
02.07.2016, 00:51  [ТС]
Ну вот простой пример делаем работает же, точно также прописываю.

PHP/HTML
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
<script src="http://code.jquery.com/jquery-latest.js"></script>
 
<style> 
#menu {
margin-top: -5px;
width: 180px;
height: 60px;
background-repeat : no-repeat;}
 
#menu span {
text-align:left;
display:block;
color:#000000;
margin: 7px 0;
padding: 11px;
}
#submenu, #menu span {
    border-radius:5px;
    -webkit-border-radius:5px;
    -khtml-border-radius:5px;
    -moz-border-radius:5px;
    -o-border-radius:5px;
background:#efeff0;
}
 
#menu .tabactive {
color: #000000;
    background:#777777;
}
 
#submenu {
padding: 3px;
height: 180px;
text-align: center;
font-size: 12px;
width: 540px;
}
 
.submenutext {
display: none; 
height: 40px;
}
</style>
 
<center><table id="tbl" style="width: 800px">
 <tbody>
  <tr>
   <td valign=top>
    <div id="menu"> <b>
<span alt="#sm1" style="cursor: pointer;">Добро пожаловать</span>
<span alt="#sm2" style="cursor: pointer;">Новости форума</span>
<span alt="#sm3" style="cursor: pointer;">Администрация</span>
<span alt="#sm4" style="cursor: pointer;">Баннеры партнеров</span>
           </b>
    </div>
   </td>
   <td id="MenuTxT"  align="center" valign="top">
    <div id="submenu" align="center"> 
     <div id="sm1" class="submenutext" style="display:block;">
<br/><br/>
текст добро пожаловать
</div>
     <div id="sm2" class="submenutext"><br /><br />
текст новости форума
</div>
     <div id="sm3" class="submenutext"><br /><br />
текст Администрация
</div>
     <div id="sm4" class="submenutext"><br /><br />
текст баннеры партнеров
</div>
 
</div>
   </td>
</tr>
 </tbody>
</table></center>
 
 
 
 
 
<script type="text/javascript">
$(document).ready(function() {
$("#MenuTxT div.submenutext").hide();
 
$("#MenuTxT div.submenutext:first").show();
$("#menu span").click(function() {
    $("#menu span").removeClass("tabactive");
    $(this).addClass("tabactive");
    $("#MenuTxT div.submenutext").hide();
    var activeDiv = $(this).attr("alt");
    $(activeDiv).fadeIn();
    return false; });
});
</script>
Добавлено через 1 минуту
Или я не правильно понял про id?

Добавлено через 6 минут
Прописал не работает по прежнему.

Добавлено через 5 минут
Спасибо огромное кроме id не там закрыл div, поправил все заработало!

Добавлено через 8 минут
Теперь другой геморрой появился, подвал пропадает, бекграунд, в другом случае просто съезжает, когда текст просто то остается все в норме. Буду завтра ковырять
0
Ренегат
Эксперт HTML/CSS
 Аватар для BANO
1740 / 1085 / 386
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
02.07.2016, 00:52
supdecar, это уже проблемы вёрстки...
0
3 / 3 / 2
Регистрация: 25.04.2014
Сообщений: 87
02.07.2016, 23:56  [ТС]
Пытались исправить версткой проблем не найдено всё одинаково, проблема всё таки в js я думаю, скорей всего код самой галереи используется один раз на 1, а на остальные не срабатывает.
Вот скрин нормальной 1 галереи

Вот скрин съехавшой

Вот убрал отодвинул вниз по высоте чтобы избежать наложения в стилях


Вообщем css тут не причем получается.
Вот код 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
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
(function( window, $, undefined ) {
    
    var $event = $.event, resizeTimeout;
 
    $event.special.smartresize  = {
        setup: function() {
            $(this).bind( "resize", $event.special.smartresize.handler );
        },
        teardown: function() {
            $(this).unbind( "resize", $event.special.smartresize.handler );
        },
        handler: function( event, execAsap ) {
            // Save the context
            var context = this,
                args    = arguments;
 
            // set correct event type
            event.type = "smartresize";
 
            if ( resizeTimeout ) { clearTimeout( resizeTimeout ); }
            resizeTimeout = setTimeout(function() {
                jQuery.event.handle.apply( context, args );
            }, execAsap === "execAsap"? 0 : 100 );
        }
    };
 
    $.fn.smartresize            = function( fn ) {
        return fn ? this.bind( "smartresize", fn ) : this.trigger( "smartresize", ["execAsap"] );
    };
    
    $.Slideshow                 = function( options, element ) {
    
        this.$el            = $( element );
        
        /***** images ****/
        
        // list of image items
        this.$list          = this.$el.find('ul.ei-slider-large');
        // image items
        this.$imgItems      = this.$list.children('li');
        // total number of items
        this.itemsCount     = this.$imgItems.length;
        // images
        this.$images        = this.$imgItems.find('img:first');
        
        /***** thumbs ****/
        
        // thumbs wrapper
        this.$sliderthumbs  = this.$el.find('ul.ei-slider-thumbs').hide();
        // slider elements
        this.$sliderElems   = this.$sliderthumbs.children('li');
        // sliding div
        this.$sliderElem    = this.$sliderthumbs.children('li.ei-slider-element');
        // thumbs
        this.$thumbs        = this.$sliderElems.not('.ei-slider-element');
        
        // initialize slideshow
        this._init( options );
        
    };
    
    $.Slideshow.defaults        = {
        // animation types:
        // "sides" : new slides will slide in from left / right
        // "center": new slides will appear in the center
        animation           : 'sides', // sides || center
        // if true the slider will automatically slide, and it will only stop if the user clicks on a thumb
        autoplay            : false,
        // interval for the slideshow
        slideshow_interval  : 3000,
        // speed for the sliding animation
        speed           : 800,
        // easing for the sliding animation
        easing          : '',
        // percentage of speed for the titles animation. Speed will be speed * titlesFactor
        titlesFactor        : 0.60,
        // titles animation speed
        titlespeed          : 800,
        // titles animation easing
        titleeasing         : '',
        // maximum width for the thumbs in pixels
        thumbMaxWidth       : 150
    };
    
    $.Slideshow.prototype       = {
        _init               : function( options ) {
            
            this.options        = $.extend( true, {}, $.Slideshow.defaults, options );
            
            // set the opacity of the title elements and the image items
            this.$imgItems.css( 'opacity', 0 );
            this.$imgItems.find('div.ei-title > *').css( 'opacity', 0 );
            
            // index of current visible slider
            this.current        = 0;
            
            var _self           = this;
            
            // preload images
            // add loading status
            this.$loading       = $('<div class="ei-slider-loading">Loading</div>').prependTo( _self.$el );
            
            $.when( this._preloadImages() ).done( function() {
                
                // hide loading status
                _self.$loading.hide();
                
                // calculate size and position for each image
                _self._setImagesSize();
                
                // configure thumbs container
                _self._initThumbs();
                
                // show first
                _self.$imgItems.eq( _self.current ).css({
                    'opacity'   : 1,
                    'z-index'   : 10
                }).show().find('div.ei-title > *').css( 'opacity', 1 );
                
                // if autoplay is true
                if( _self.options.autoplay ) {
                
                    _self._startSlideshow();
                
                }
                
                // initialize the events
                _self._initEvents();
            
            });
            
        },
        _preloadImages      : function() {
            
            // preloads all the large images
            
            var _self   = this,
                loaded  = 0;
            
            return $.Deferred(
            
                function(dfd) {
            
                    _self.$images.each( function( i ) {
                        
                        $('<img/>').load( function() {
                        
                            if( ++loaded === _self.itemsCount ) {
                            
                                dfd.resolve();
                                
                            }
                        
                        }).attr( 'src', $(this).attr('src') );
                    
                    });
                    
                }
                
            ).promise();
            
        },
        _setImagesSize      : function() {
            
            // save ei-slider's width
            this.elWidth    = this.$el.width();
            
            var _self   = this;
            
            this.$images.each( function( i ) {
                
                var $img    = $(this);
                    imgDim  = _self._getImageDim( $img.attr('src') );
                    
                $img.css({
                    width       : imgDim.width,
                    height      : imgDim.height,
                    marginLeft  : imgDim.left,
                    marginTop   : imgDim.top
                });
                
            });
        
        },
        _getImageDim        : function( src ) {
            
            var $img    = new Image();
                            
            $img.src    = src;
                    
            var c_w     = this.elWidth,
                c_h     = this.$el.height(),
                r_w     = c_h / c_w,
                
                i_w     = $img.width,
                i_h     = $img.height,
                r_i     = i_h / i_w,
                new_w, new_h, new_left, new_top;
                    
            if( r_w > r_i ) {
                
                new_h   = c_h;
                new_w   = c_h / r_i;
            
            }
            else {
            
                new_h   = c_w * r_i;
                new_w   = c_w;
            
            }
                    
            return {
                width   : new_w,
                height  : new_h,
                left    : ( c_w - new_w ) / 2,
                top     : ( c_h - new_h ) / 2
            };
        
        },
        _initThumbs         : function() {
        
            // set the max-width of the slider elements to the one set in the plugin's options
            // also, the width of each slider element will be 100% / total number of elements
            this.$sliderElems.css({
                'max-width' : this.options.thumbMaxWidth + 'px',
                'width'     : 100 / this.itemsCount + '%'
            });
            
            // set the max-width of the slider and show it
            this.$sliderthumbs.css( 'max-width', this.options.thumbMaxWidth * this.itemsCount + 'px' ).show();
            
        },
        _startSlideshow     : function() {
        
            var _self   = this;
            
            this.slideshow  = setTimeout( function() {
                
                var pos;
                
                ( _self.current === _self.itemsCount - 1 ) ? pos = 0 : pos = _self.current + 1;
                
                _self._slideTo( pos );
                
                if( _self.options.autoplay ) {
                
                    _self._startSlideshow();
                
                }
            
            }, this.options.slideshow_interval);
        
        },
        // shows the clicked thumb's slide
        _slideTo            : function( pos ) {
            
            // return if clicking the same element or if currently animating
            if( pos === this.current || this.isAnimating )
                return false;
            
            this.isAnimating    = true;
            
            var $currentSlide   = this.$imgItems.eq( this.current ),
                $nextSlide      = this.$imgItems.eq( pos ),
                _self           = this,
                
                preCSS          = {zIndex   : 10},
                animCSS         = {opacity  : 1};
            
            // new slide will slide in from left or right side
            if( this.options.animation === 'sides' ) {
                
                preCSS.left     = ( pos > this.current ) ? -1 * this.elWidth : this.elWidth;
                animCSS.left    = 0;
            
            }   
            
            // titles animation
            $nextSlide.find('div.ei-title > h2')
                      .css( 'margin-right', 50 + 'px' )
                      .stop()
                      .delay( this.options.speed * this.options.titlesFactor )
                      .animate({ marginRight : 0 + 'px', opacity : 1 }, this.options.titlespeed, this.options.titleeasing )
                      .end()
                      .find('div.ei-title > h3')
                      .css( 'margin-right', -50 + 'px' )
                      .stop()
                      .delay( this.options.speed * this.options.titlesFactor )
                      .animate({ marginRight : 0 + 'px', opacity : 1 }, this.options.titlespeed, this.options.titleeasing )
            
            $.when(
                
                // fade out current titles
                $currentSlide.css( 'z-index' , 1 ).find('div.ei-title > *').stop().fadeOut( this.options.speed / 2, function() {
                    // reset style
                    $(this).show().css( 'opacity', 0 ); 
                }),
                
                // animate next slide in
                $nextSlide.css( preCSS ).stop().animate( animCSS, this.options.speed, this.options.easing ),
                
                // "sliding div" moves to new position
                this.$sliderElem.stop().animate({
                    left    : this.$thumbs.eq( pos ).position().left
                }, this.options.speed )
                
            ).done( function() {
                
                // reset values
                $currentSlide.css( 'opacity' , 0 ).find('div.ei-title > *').css( 'opacity', 0 );
                    _self.current   = pos;
                    _self.isAnimating       = false;
                
                });
                
        },
        _initEvents         : function() {
            
            var _self   = this;
            
            // window resize
            $(window).on( 'smartresize.eislideshow', function( event ) {
                
                // resize the images
                _self._setImagesSize();
            
                // reset position of thumbs sliding div
                _self.$sliderElem.css( 'left', _self.$thumbs.eq( _self.current ).position().left );
            
            });
            
            // click the thumbs
            this.$thumbs.on( 'click.eislideshow', function( event ) {
                
                if( _self.options.autoplay ) {
                
                    clearTimeout( _self.slideshow );
                    _self.options.autoplay  = false;
                
                }
                
                var $thumb  = $(this),
                    idx     = $thumb.index() - 1; // exclude sliding div
                    
                _self._slideTo( idx );
                
                return false;
            
            });
            
        }
    };
    
    var logError                = function( message ) {
        
        if ( this.console ) {
            
            console.error( message );
            
        }
        
    };
    
    $.fn.eislideshow            = function( options ) {
    
        if ( typeof options === 'string' ) {
        
            var args = Array.prototype.slice.call( arguments, 1 );
 
            this.each(function() {
            
                var instance = $.data( this, 'eislideshow' );
                
                if ( !instance ) {
                    logError( "cannot call methods on eislideshow prior to initialization; " +
                    "attempted to call method '" + options + "'" );
                    return;
                }
                
                if ( !$.isFunction( instance[options] ) || options.charAt(0) === "_" ) {
                    logError( "no such method '" + options + "' for eislideshow instance" );
                    return;
                }
                
                instance[ options ].apply( instance, args );
            
            });
        
        } 
        else {
        
            this.each(function() {
            
                var instance = $.data( this, 'eislideshow' );
                if ( !instance ) {
                    $.data( this, 'eislideshow', new $.Slideshow( options, this ) );
                }
            
            });
        
        }
        
        return this;
        
    };
    
})( window, jQuery );
0
3 / 3 / 2
Регистрация: 25.04.2014
Сообщений: 87
02.07.2016, 23:56  [ТС]
Помогите до ума довести
0
Ренегат
Эксперт HTML/CSS
 Аватар для BANO
1740 / 1085 / 386
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
03.07.2016, 00:30
Лучший ответ Сообщение было отмечено supdecar как решение

Решение

supdecar, да, там есть проблема с тем, что он попиксельно считает ширину... это проблема, которую я не знаю как решить

Добавлено через 3 минуты
а, нет, кажется придумал, скрипт инициализации у вас неправильный
честно говоря вообще бредовый, и разметка такая же получается

и так, запомните ID на страницу может быть ТОЛЬКО ОДИН

и так, уберите везде на всех ваших галереях id="ei-slider", совсем
теперь меняйте скрипт инициализации, вместо # ставьте .
должно получится вот так
JavaScript
1
2
3
4
5
6
7
8
$(function() {
    $('.ei-slider').eislideshow({
        animation           : 'center',
        autoplay            : true,
        slideshow_interval  : 3000,
       titlesFactor     : 0
    });
});
1
3 / 3 / 2
Регистрация: 25.04.2014
Сообщений: 87
03.07.2016, 01:54  [ТС]
Спасибо не додумался бы сам что в id было дело, теперь посъезжали картинки сами, а нижнее нормально, буду ковырять смотреть.
0
3 / 3 / 2
Регистрация: 25.04.2014
Сообщений: 87
03.07.2016, 02:04  [ТС]
Причем опять съехали все кроме первой, в самом js не помню упоминания именно про id да и просмотрел не вижу, так что странно, что удаление так повлияло, и в css не слова про #
0
Ренегат
Эксперт HTML/CSS
 Аватар для BANO
1740 / 1085 / 386
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
03.07.2016, 02:06
supdecar, после ресайза нормально становится
0
3 / 3 / 2
Регистрация: 25.04.2014
Сообщений: 87
03.07.2016, 02:25  [ТС]
Так мне принудительно ресайз что-ли загнать на кнопку?

Добавлено через 45 секунд
Я как понял что он один раз прогнал ресайз для 1 галереии а на вторую нажимаю уже скрипт не исполняется

Добавлено через 7 минут
Мысля крутиться, что при нажатии на кнопки надо чтобы скрипт заного прогонялся и тогда будет всё красиво, но пока не понял как реализовать, просто послать значение .ei-slider? Короче буду думать как реализовать

Добавлено через 2 минуты
Усложнил себе жизнь еще тем что движок modx не прописать ничего лишнего(
0
Ренегат
Эксперт HTML/CSS
 Аватар для BANO
1740 / 1085 / 386
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
03.07.2016, 02:39
supdecar, после каждой смены галереи делаете вот такой финт ушами
JavaScript
1
$(window).trigger('smartresize.eislideshow');
должно прокатить
0
3 / 3 / 2
Регистрация: 25.04.2014
Сообщений: 87
03.07.2016, 12:41  [ТС]
Вставил так
JavaScript
1
<li id="#sm2" onclick="$(window).trigger('smartresize.eislideshow');">Строительство</li>
Работает только если на кнопку два раза нажать

Добавлено через 15 минут
onMouseDown также
0
Ренегат
Эксперт HTML/CSS
 Аватар для BANO
1740 / 1085 / 386
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
03.07.2016, 14:41
Лучший ответ Сообщение было отмечено supdecar как решение

Решение

supdecar, вы не так сделали
надо вот так
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
$(document).ready(function() {
    $("div.submenutext").hide();
    $("div.submenutext:first").show();
    $(".menuwork li").click(function() {
        $(".menuwork li").removeClass("tabactive");
        $(this).addClass("tabactive");
        $("div.submenutext").hide();
        var activeDiv = $(this).attr("id");
        $(activeDiv).fadeIn();
        $(window).trigger('smartresize.eislideshow');
        return false;
    });
});
1
3 / 3 / 2
Регистрация: 25.04.2014
Сообщений: 87
03.07.2016, 15:30  [ТС]
Спасибо огромное, короче сажусь по новой читать jquery))) Вообще голова перестала варить.
0
Ренегат
Эксперт HTML/CSS
 Аватар для BANO
1740 / 1085 / 386
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
03.07.2016, 15:36
supdecar, сначала js надо выучить, а потом уже и jq можно начать
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
03.07.2016, 15:36
Помогаю со студенческими работами здесь

Не работают методы .hide(); и .show();
Здравствуйте. Почему данные методы не отрабатывают на формах? &lt;div class=&quot;col-lg-6 col-md-6 col-sm-6 col-xs-6 highheader2&quot;&gt; ...

show/hide в зависимости от условия
Последний раз у меня была проблема с выводом чекбоксов в дереве, но я разобралась с помощью in_array. Сейчас вот думаю, как сделать так,...

Hide-show с data атрибутами
Здравствуйте,скажите как сделать обычный slideToggle по клику например на аттрибут data-id=&quot;0&quot; ,в одном диве, появлялся блок с...

Простая задача class hide и id show
как решить подобную задачу? $(blocks).hide(); должен выключать блоки с классом &quot;blocks&quot; после этого $(elem).show(); должен...

Несколько галерей fancybox на одной страничке
Подскажите как можно сделать несколько независимых fancybox галереи с независимыми прокрутками? Пробую тут Конечно-же работает...


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru