teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

3

プログラム部分のコメント訂正

2018/04/24 10:30

投稿

mix-peach
mix-peach

スコア1910

answer CHANGED
@@ -50,14 +50,14 @@
50
50
  func_sp('dummy1');
51
51
  }
52
52
  });
53
- //い幅でだけ動かしたい
53
+ //い幅でだけ動かしたい
54
54
  $('.dummy2').on('click', function(e){
55
55
  //イベントの中で分岐処理
56
56
  if(pc_view){
57
57
  func_pc('dummy2');
58
58
  }
59
59
  });
60
- //い幅でだけ動かしたい
60
+ //い幅でだけ動かしたい
61
61
  $('.dummy3').on('click', function(e){
62
62
  //イベントの中で分岐処理
63
63
  if(!pc_view){

2

プログラム部分にコメントを追加しました・・・

2018/04/24 10:29

投稿

mix-peach
mix-peach

スコア1910

answer CHANGED
@@ -35,12 +35,15 @@
35
35
  if (timer !== false) {
36
36
  clearTimeout(timer);
37
37
  }
38
- //リサイズが終わったら、サイズを計ります。1162以上なら、pc_viewがtureに、未満ならfalseになる
38
+ //リサイズが終わったら、判定用にサイズを計ります。1162以上なら、pc_viewがtureに、未満ならfalseになる
39
39
  timer = setTimeout(function() { pc_view = ($(window).width() >= 1162)} ,0);
40
40
  });
41
+
42
+ //イベントはいつでも設定しておく
41
43
  $(function(){
42
44
  //幅それぞれで動作を変えたい
43
45
  $('.dummy1').on('click', function(e) {
46
+ //イベントの中で分岐処理
44
47
  if(pc_view){
45
48
  func_pc('dummy1');
46
49
  }else{
@@ -49,12 +52,14 @@
49
52
  });
50
53
  //狭い幅でだけ動かしたい
51
54
  $('.dummy2').on('click', function(e){
55
+ //イベントの中で分岐処理
52
56
  if(pc_view){
53
57
  func_pc('dummy2');
54
58
  }
55
59
  });
56
60
  //広い幅でだけ動かしたい
57
61
  $('.dummy3').on('click', function(e){
62
+ //イベントの中で分岐処理
58
63
  if(!pc_view){
59
64
  func_sp('dummy3');
60
65
  }

1

プログラム例の追記

2018/04/24 10:28

投稿

mix-peach
mix-peach

スコア1910

answer CHANGED
@@ -3,4 +3,77 @@
3
3
  イベント自体は常に設定しておいて、
4
4
  イベントの中で画面幅を判定して処理を分ける方が、
5
5
  リサイズするたびに、イベントを削除したり設定したりをガンバルより、
6
- 単純でいいのでは?と思いました。
6
+ 単純でいいのでは?と思いました。
7
+
8
+ ---
9
+
10
+ 具体的にどちらの幅で何をされたいのかを、把握するのに時間がかかりそうだったので、
11
+
12
+ サンプルを書いてみました
13
+ コピってファイルに保存して、ネットワークの繋がった環境でブラウザで開けば
14
+ たぶん動くはずなのです。。。
15
+
16
+ 参考になるといいですが。
17
+
18
+ ```javascript
19
+ <!DOCTYPE html>
20
+ <head>
21
+ <meta charset="UTF-8">
22
+ <title>test</title>
23
+ <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
24
+ <script >
25
+ var func_pc = function(clsname) {
26
+ alert('1162以上だよー。 '+clsname);
27
+ };
28
+ var func_sp = function(clsname) {
29
+ alert('1162未満だよー。'+clsname);
30
+ };
31
+
32
+ var timer = false;
33
+ var pc_view = true;
34
+ $(window).on('load resize', function(){
35
+ if (timer !== false) {
36
+ clearTimeout(timer);
37
+ }
38
+ //リサイズが終わったら、サイズを計ります。1162以上なら、pc_viewがtureに、未満ならfalseになる
39
+ timer = setTimeout(function() { pc_view = ($(window).width() >= 1162)} ,0);
40
+ });
41
+ $(function(){
42
+ //幅それぞれで動作を変えたい
43
+ $('.dummy1').on('click', function(e) {
44
+ if(pc_view){
45
+ func_pc('dummy1');
46
+ }else{
47
+ func_sp('dummy1');
48
+ }
49
+ });
50
+ //狭い幅でだけ動かしたい
51
+ $('.dummy2').on('click', function(e){
52
+ if(pc_view){
53
+ func_pc('dummy2');
54
+ }
55
+ });
56
+ //広い幅でだけ動かしたい
57
+ $('.dummy3').on('click', function(e){
58
+ if(!pc_view){
59
+ func_sp('dummy3');
60
+ }
61
+ });
62
+ });
63
+ </script>
64
+
65
+ <style >
66
+ a { display: block; line-height: 20px; border: 1px black solid; padding: 5px; width: 100px; }
67
+ </style>
68
+ </head>
69
+
70
+ <body>
71
+ <a class="dummy1" href="javascript:void(0);">ダミー1</a>
72
+
73
+ <a class="dummy2" href="javascript:void(0);">ダミー2</a>
74
+
75
+ <a class="dummy3" href="javascript:void(0);">ダミー3</a>
76
+ </body>
77
+ </html>
78
+
79
+ ```