質問編集履歴

1

2017/10/11 14:58

投稿

chanmayu10
chanmayu10

スコア6

test CHANGED
File without changes
test CHANGED
@@ -10,30 +10,418 @@
10
10
 
11
11
  widthが1980pxの画像を3枚スライドさせているのですが、ウィンドウ幅が1980px以下になると画像の左が固定されてしまいます。
12
12
 
13
- 結果、画像の左端〜ウィンドウ幅までしか画面が見えず、バランス悪く見切れてしまうのです。
13
+ 結果、画像の左端〜ウィンドウ幅までしか画面が見えず、右側がバランス悪く見切れてしまうのです。
14
-
15
- エラーメッセージ
14
+
16
-
17
- ```
15
+
18
16
 
19
17
 
20
18
 
21
19
  ###該当のソースコード
22
20
 
23
- ```ここに言語を入力
24
-
25
- ここにご自身が実行したソースコードを書いてください
26
-
27
- ```
28
-
29
-
21
+ <div id="sliderContainer">
22
+
23
+ <div id="bannerBox">
24
+
25
+ <ul class="clearfix">
26
+
27
+ <li><img src="img/slider_01.jpg"></li>
28
+
29
+ <li><img src="img/slider_02.jpg"></li>
30
+
31
+ <li><img src="img/slider_03.jpg"></li>
32
+
33
+ </ul>
34
+
35
+ </div>
36
+
37
+ <div id="btnPagination">
38
+
39
+ <ul>
40
+
41
+ <!-- <li>は自動追加 -->
42
+
43
+ </ul>
44
+
45
+ </div>
46
+
47
+ <p id="btnPrev"><a href="#"><img src="slider/btn_prev.png"></a></p>
48
+
49
+ <p id="btnNext"><a href="#"><img src="slider/btn_next.png"></a></p>
50
+
51
+ </div>
52
+
53
+
54
+
55
+ <style>
56
+
57
+ #sliderContainer {
58
+
59
+ margin: 0;
60
+
61
+ padding: 0;
62
+
63
+ border: 0 none;
64
+
65
+ }
66
+
67
+ #sliderContainer ul,
68
+
69
+ #sliderContainer li {
70
+
71
+ list-style-type: none;
72
+
73
+ }
74
+
75
+ /* sliderContainer */
76
+
77
+ #sliderContainer {
78
+
79
+ margin-left: 1px;
80
+
81
+ width: 1980px;
82
+
83
+ height: 730px;
84
+
85
+ }
86
+
87
+ /* bannerBox */
88
+
89
+ #sliderContainer #bannerBox ul {
90
+
91
+ margin-left: 0;
92
+
93
+ width:1980px;
94
+
95
+ height:730px;
96
+
97
+ overflow: hidden;
98
+
99
+ position: relative;
100
+
101
+ }
102
+
103
+ #sliderContainer #bannerBox ul li {
104
+
105
+ float: left;
106
+
107
+ width: 1980px;
108
+
109
+ position: absolute;
110
+
111
+ visibility:hidden;
112
+
113
+ max-height:730px;
114
+
115
+ }
116
+
117
+ /* btnPrev & btnNext */
118
+
119
+ #sliderContainer #btnPrev,
120
+
121
+ #sliderContainer #btnNext {
122
+
123
+ border: 0 none;
124
+
125
+ width: 38px;
126
+
127
+ height: 730px;
128
+
129
+ position: relative;
130
+
131
+ }
132
+
133
+ /* btnPrev */
134
+
135
+ #sliderContainer #btnPrev {
136
+
137
+ top: -745px;
138
+
139
+ left: 13px;
140
+
141
+ }
142
+
143
+ /* btnNext */
144
+
145
+ #sliderContainer #btnNext {
146
+
147
+ top: -745px;
148
+
149
+ right: 1px;
150
+
151
+ }
152
+
153
+ /* btnPagination */
154
+
155
+ #sliderContainer #btnPagination {
156
+
157
+ position: relative;
158
+
159
+ overflow: hidden;
160
+
161
+ top: -22px;
162
+
163
+ }
164
+
165
+ #sliderContainer #btnPagination ul {
166
+
167
+ float: left;
168
+
169
+ position: relative;
170
+
171
+ left: 11px;
172
+
173
+ }
174
+
175
+ #sliderContainer #btnPagination ul li {
176
+
177
+ float: left;
178
+
179
+ position: relative;
180
+
181
+ margin: 0 9px;
182
+
183
+ }
184
+
185
+ #sliderContainer #btnPagination ul li a {
186
+
187
+ display: block;
188
+
189
+ width: 13px;
190
+
191
+ height: 13px;
192
+
193
+ background-color:red;
194
+
195
+ background-position: 0 0;
196
+
197
+ overflow: hidden;
198
+
199
+ }
200
+
201
+ #sliderContainer #btnPagination ul li a img {
202
+
203
+ visibility: hidden;
204
+
205
+ display: none;
206
+
207
+ }
208
+
209
+ </style>
210
+
211
+
212
+
213
+ //ページを読み込んでから処理開始
214
+
215
+ $(window).load(function(){
216
+
217
+ //一瞬次の画像が表示されるのを対策
218
+
219
+ $("#sliderContainer #bannerBox ul li").css({
220
+
221
+ "visibility" : "visible"
222
+
223
+ });
224
+
225
+ var _imgNum = 0; //画像の枚数。カウント用。スクリプトで取得
226
+
227
+ var _imgWidth = 0; //画像のwidth。スクリプトで取得
228
+
229
+ var _current = 0; //現在の画像の位置。スクリプトで取得
230
+
231
+ var _timerSpeed = 5000; //タイマー時間。1000=1秒
232
+
233
+ var _fadeSpeed = 200; //左右ボタンのフェード時間
234
+
235
+
236
+
237
+ //bannerBoxとbtnPaginationのulの指定
238
+
239
+ var _bannerUL = "#bannerBox ul";
240
+
241
+ var _paginationUL = "#btnPagination ul";
242
+
243
+
244
+
245
+ //画像の横幅取得
246
+
247
+ _imgWidth = $(_bannerUL).children("li").width();
248
+
249
+
250
+
251
+ //画像の枚数分だけ繰り返す処理
252
+
253
+ $(_bannerUL).children("li").each(function(){
254
+
255
+
256
+
257
+ //画像を外に配置
258
+
259
+ $(this).css("margin-left", -_imgWidth);
260
+
261
+
262
+
263
+ //最初の画像の時
264
+
265
+ if(_imgNum == _current){
266
+
267
+ $(this).css("margin-left", "0");
268
+
269
+ }else{
270
+
271
+ }
272
+
273
+
274
+
275
+ //ループの数をカウントし、変数_imgNumに格納
276
+
277
+ _imgNum++;
278
+
279
+
280
+
281
+ });//$(_bannerUL).children("li").each(function() END
282
+
283
+
284
+
285
+
286
+
287
+ //一定時間ごとに画像を切り替える関数(slideImg)を実行
288
+
289
+ var loopSwitch = setInterval(loop, _timerSpeed);
290
+
291
+ function loop(){
292
+
293
+ slideImg(_current + 1);
294
+
295
+ }
296
+
297
+
298
+
299
+
300
+
301
+ //次へ進むボタンをクリック
302
+
303
+ $("#btnNext").click(function(e){
304
+
305
+ e.preventDefault();
306
+
307
+ slideImg(_current + 1);
308
+
309
+ });
310
+
311
+
312
+
313
+ //前へ戻るボタンをクリック
314
+
315
+ $("#btnPrev").click(function(e){
316
+
317
+ e.preventDefault();
318
+
319
+ slideImg(_current - 1);
320
+
321
+ });
322
+
323
+
324
+
325
+ //画像を切り替える関数
326
+
327
+ function slideImg(next){
328
+
329
+ ////ループ時間をリセット
330
+
331
+ clearInterval(loopSwitch);
332
+
333
+ loopSwitch = setInterval(loop, _timerSpeed);
334
+
335
+
336
+
337
+ //次の画像番号が大きければ、変数posに画像の横幅を代入
338
+
339
+ //次の画像番号が小さければ、変数posに画像の横幅(マイナス)を代入
340
+
341
+ var pos;
342
+
343
+ if(_current < next){
344
+
345
+ pos = _imgWidth;
346
+
347
+ }else{
348
+
349
+ pos = -_imgWidth;
350
+
351
+ }
352
+
353
+
354
+
355
+ //現在の画像が最後なら、次は1枚目を表示
356
+
357
+ //現在の画像が最初なら、次は最後を表示
358
+
359
+ if(next == _imgNum){
360
+
361
+ next = 0;
362
+
363
+ }else if(next == -1){
364
+
365
+ next = (_imgNum - 1);
366
+
367
+ }
368
+
369
+
370
+
371
+ //次の画像を表示
372
+
373
+ $(_bannerUL).children("li").eq(next).css("margin-left", pos).animate({
374
+
375
+ marginLeft: "0"
376
+
377
+ }, { duration: 'slow', easing: 'swing', } );
378
+
379
+
380
+
381
+ //現在の画像を外へ配置
382
+
383
+ $(_bannerUL).children("li").eq(_current).animate({
384
+
385
+ marginLeft: -pos
386
+
387
+ }, { duration: 'slow', easing: 'swing', } );
388
+
389
+
390
+
391
+ //画像の位置を次の番号に
392
+
393
+ _current = next;
394
+
395
+
396
+
397
+ }//function slideImg(next) END
398
+
399
+
400
+
401
+ $("#bannerBox").hover(function(){
402
+
403
+
404
+
405
+ });
406
+
407
+ });
30
408
 
31
409
  ###試したこと
32
410
 
33
-
34
-
35
-
36
-
37
- ###補足情報(言語/FW/ツール等のバージョンなど)
411
+ #sliderContainer #bannerBox ul li ing{
412
+
38
-
413
+ position:absolute;
414
+
415
+ margin-left:-990px;
416
+
417
+ left:50%;
418
+
419
+ }
420
+
421
+ ↑これはやりましたが、margin-leftの値を変えることでスライドさせているので今度はうまくスライドしなかった上に画像の表示されかたも変わりませんでした…
422
+
423
+
424
+
39
- より詳細な情報
425
+ ###補足情報
426
+
427
+ まだ勉強し始めて1週間程度ですので、お手柔らかにご指導願います。