質問編集履歴

1

jsとhtmlの追記

2017/05/07 03:22

投稿

yoshimitsu41
yoshimitsu41

スコア36

test CHANGED
File without changes
test CHANGED
@@ -26,6 +26,36 @@
26
26
 
27
27
  ```html
28
28
 
29
+
30
+
31
+ <body class="drawer drawer--right">
32
+
33
+ <header role="banner">
34
+
35
+ <button type="button" class="drawer-toggle drawer-hamburger">
36
+
37
+ <span class="sr-only">toggle navigation</span>
38
+
39
+ <span class="drawer-hamburger-icon"></span>
40
+
41
+ </button>
42
+
43
+ <nav class="drawer-nav" role="navigation">
44
+
45
+ <ul class="drawer-menu">
46
+
47
+ <li><a class="drawer-menu-item" href="/"><i class="fa fa-home" aria-hidden="true"></i>Home</a></li>
48
+
49
+ <li><a class="drawer-menu-item" href=""><i class="fa fa-sign-in" aria-hidden="true"></i>お問合わせ</a></li>
50
+
51
+ </ul>
52
+
53
+ </nav>
54
+
55
+ </header>
56
+
57
+
58
+
29
59
  <div class="search">
30
60
 
31
61
  <div class="container">
@@ -128,4 +158,406 @@
128
158
 
129
159
 
130
160
 
161
+
162
+
163
+ <script type="text/javascript">
164
+
165
+ $(document).ready(function() {
166
+
167
+ $('.drawer').drawer({
168
+
169
+ class: {
170
+
171
+ navClass: 'drawer-nav',
172
+
173
+ toggle: 'drawer-toggle',
174
+
175
+ overlay: 'drawer-overlay',
176
+
177
+ open: 'drawer-open',
178
+
179
+ close: 'drawer-close',
180
+
181
+ dropdown: 'drawer-dropdown'
182
+
183
+ }});
184
+
185
+
186
+
187
+ });
188
+
189
+ </script>
190
+
191
+
192
+
131
193
  ```
194
+
195
+
196
+
197
+ ```javascript
198
+
199
+ /*!
200
+
201
+ * jquery-drawer v3.2.2
202
+
203
+ * Flexible drawer menu using jQuery, iScroll and CSS.
204
+
205
+ * http://git.blivesta.com/drawer
206
+
207
+ * License : MIT
208
+
209
+ * Author : blivesta <design@blivesta.com> (http://blivesta.com/)
210
+
211
+ */
212
+
213
+
214
+
215
+ ;(function umd(factory) {
216
+
217
+ 'use strict';
218
+
219
+ if (typeof define === 'function' && define.amd) {
220
+
221
+ define(['jquery'], factory);
222
+
223
+ } else if (typeof exports === 'object') {
224
+
225
+ module.exports = factory(require('jquery'));
226
+
227
+ } else {
228
+
229
+ factory(jQuery);
230
+
231
+ }
232
+
233
+ }(function Drawer($) {
234
+
235
+ 'use strict';
236
+
237
+ var namespace = 'drawer';
238
+
239
+ var touches = typeof document.ontouchstart != 'undefined';
240
+
241
+ var __ = {
242
+
243
+ init: function init(options) {
244
+
245
+ options = $.extend({
246
+
247
+ iscroll: {
248
+
249
+ mouseWheel: true,
250
+
251
+ preventDefault: false
252
+
253
+ },
254
+
255
+ showOverlay: true
256
+
257
+ }, options);
258
+
259
+
260
+
261
+ __.settings = {
262
+
263
+ state: false,
264
+
265
+ events: {
266
+
267
+ opened: 'drawer.opened',
268
+
269
+ closed: 'drawer.closed'
270
+
271
+ },
272
+
273
+ dropdownEvents: {
274
+
275
+ opened: 'shown.bs.dropdown',
276
+
277
+ closed: 'hidden.bs.dropdown'
278
+
279
+ }
280
+
281
+ };
282
+
283
+
284
+
285
+ __.settings.class = $.extend({
286
+
287
+ nav: 'drawer-nav',
288
+
289
+ toggle: 'drawer-toggle',
290
+
291
+ overlay: 'drawer-overlay',
292
+
293
+ open: 'drawer-open',
294
+
295
+ close: 'drawer-close',
296
+
297
+ dropdown: 'drawer-dropdown'
298
+
299
+ }, options.class);
300
+
301
+
302
+
303
+ return this.each(function instantiateDrawer() {
304
+
305
+ var _this = this;
306
+
307
+ var $this = $(this);
308
+
309
+ var data = $this.data(namespace);
310
+
311
+
312
+
313
+ if (!data) {
314
+
315
+ options = $.extend({}, options);
316
+
317
+ $this.data(namespace, { options: options });
318
+
319
+
320
+
321
+ __.refresh.call(_this);
322
+
323
+
324
+
325
+ if (options.showOverlay) {
326
+
327
+ __.addOverlay.call(_this);
328
+
329
+ }
330
+
331
+
332
+
333
+ $('.' + __.settings.class.toggle).on('click.' + namespace, function toggle() {
334
+
335
+ __.toggle.call(_this);
336
+
337
+ return _this.iScroll.refresh();
338
+
339
+ });
340
+
341
+
342
+
343
+ $(window).on('resize.' + namespace, function close() {
344
+
345
+ __.close.call(_this);
346
+
347
+ return _this.iScroll.refresh();
348
+
349
+ });
350
+
351
+
352
+
353
+ $('.' + __.settings.class.dropdown)
354
+
355
+ .on(__.settings.dropdownEvents.opened + ' ' + __.settings.dropdownEvents.closed, function onOpenedOrClosed() {
356
+
357
+ return _this.iScroll.refresh();
358
+
359
+ });
360
+
361
+ }
362
+
363
+
364
+
365
+ }); // end each
366
+
367
+ },
368
+
369
+
370
+
371
+ refresh: function refresh() {
372
+
373
+ this.iScroll = new IScroll(
374
+
375
+ '.' + __.settings.class.nav,
376
+
377
+ $(this).data(namespace).options.iscroll
378
+
379
+ );
380
+
381
+ },
382
+
383
+
384
+
385
+ addOverlay: function addOverlay() {
386
+
387
+ var $this = $(this);
388
+
389
+ var $overlay = $('<div>').addClass(__.settings.class.overlay + ' ' + __.settings.class.toggle);
390
+
391
+
392
+
393
+ return $this.append($overlay);
394
+
395
+ },
396
+
397
+
398
+
399
+ toggle: function toggle() {
400
+
401
+ var _this = this;
402
+
403
+
404
+
405
+ if (__.settings.state) {
406
+
407
+ return __.close.call(_this);
408
+
409
+ } else {
410
+
411
+ return __.open.call(_this);
412
+
413
+ }
414
+
415
+ },
416
+
417
+
418
+
419
+ open: function open() {
420
+
421
+ var $this = $(this);
422
+
423
+
424
+
425
+ if (touches) {
426
+
427
+ $this.on('touchmove.' + namespace, function disableTouch(event) {
428
+
429
+ event.preventDefault();
430
+
431
+ });
432
+
433
+ }
434
+
435
+
436
+
437
+ return $this
438
+
439
+ .removeClass(__.settings.class.close)
440
+
441
+ .addClass(__.settings.class.open)
442
+
443
+ .drawerCallback(function triggerOpenedListeners() {
444
+
445
+ __.settings.state = true;
446
+
447
+ $this.trigger(__.settings.events.opened);
448
+
449
+ });
450
+
451
+ },
452
+
453
+
454
+
455
+ close: function close() {
456
+
457
+ var $this = $(this);
458
+
459
+
460
+
461
+ if (touches) $this.off('touchmove.' + namespace);
462
+
463
+
464
+
465
+ return $this
466
+
467
+ .removeClass(__.settings.class.open)
468
+
469
+ .addClass(__.settings.class.close)
470
+
471
+ .drawerCallback(function triggerClosedListeners() {
472
+
473
+ __.settings.state = false;
474
+
475
+ $this.trigger(__.settings.events.closed);
476
+
477
+ });
478
+
479
+ },
480
+
481
+
482
+
483
+ destroy: function destroy() {
484
+
485
+ return this.each(function destroyEach() {
486
+
487
+ var _this = this;
488
+
489
+ var $this = $(this);
490
+
491
+ $('.' + __.settings.class.toggle).off('click.' + namespace);
492
+
493
+ $(window).off('resize.' + namespace);
494
+
495
+ $('.' + __.settings.class.dropdown).off(__.settings.dropdownEvents.opened + ' ' + __.settings.dropdownEvents.closed);
496
+
497
+ _this.iScroll.destroy();
498
+
499
+ $this
500
+
501
+ .removeData(namespace)
502
+
503
+ .find('.' + __.settings.class.overlay)
504
+
505
+ .remove();
506
+
507
+ });
508
+
509
+ }
510
+
511
+
512
+
513
+ };
514
+
515
+
516
+
517
+ $.fn.drawerCallback = function drawerCallback(callback) {
518
+
519
+ var end = 'transitionend webkitTransitionEnd';
520
+
521
+ return this.each(function setAnimationEndHandler() {
522
+
523
+ var $this = $(this);
524
+
525
+ $this.on(end, function invokeCallbackOnAnimationEnd() {
526
+
527
+ $this.off(end);
528
+
529
+ return callback.call(this);
530
+
531
+ });
532
+
533
+ });
534
+
535
+ };
536
+
537
+
538
+
539
+ $.fn.drawer = function drawer(method) {
540
+
541
+ if (__[method]) {
542
+
543
+ return __[method].apply(this, Array.prototype.slice.call(arguments, 1));
544
+
545
+ } else if (typeof method === 'object' || !method) {
546
+
547
+ return __.init.apply(this, arguments);
548
+
549
+ } else {
550
+
551
+ $.error('Method ' + method + ' does not exist on jQuery.' + namespace);
552
+
553
+ }
554
+
555
+ };
556
+
557
+
558
+
559
+ }));
560
+
561
+
562
+
563
+ ```