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

質問編集履歴

2

追記(条件式をquesFunc内でも記述した)

2019/06/25 03:18

投稿

ueda_kesuke
ueda_kesuke

スコア34

title CHANGED
File without changes
body CHANGED
@@ -96,4 +96,77 @@
96
96
 
97
97
  ```
98
98
  アドバイスをいただいたように、moveFuncNarrowとmoveFuncWideを定義したのですが、両方動いてしまいます。
99
- 画面幅に応じてどちらか片方を動かしたいです。return文とかなのかなと思ったのですが、うまく使えませんでした...。ご教授いただきたいです。
99
+ 画面幅に応じてどちらか片方を動かしたいです。return文とかなのかなと思ったのですが、うまく使えませんでした...。ご教授いただきたいです。
100
+
101
+
102
+
103
+
104
+ ### 追記(条件式をquesFunc内でも定義してみました)
105
+ ```javascript
106
+ function quesFunc(){
107
+ var idArray = this.id.split("_");
108
+ var qID = Number(idArray[0]);
109
+ var ansID = Number(idArray[1]);
110
+
111
+ var selectID = selectArray[qID];
112
+
113
+ if (ansID == selectID) return;
114
+
115
+ $("#" + qID + "_" + ansID).addClass("selected")
116
+ $("#" + qID + "_" + selectID).removeClass("selected");
117
+
118
+ selectArray[qID] = ansID;
119
+
120
+
121
+ $(window).resize(function(){
122
+ var w = $(window).width();
123
+ var x = 415;
124
+ if (w <= x) {
125
+ $(".qBox").css("width", "300px");
126
+ moveFuncNarrow(qID);
127
+ } else {
128
+ moveFuncWide(qID);
129
+ }
130
+ });
131
+
132
+
133
+  moveFuncNarrow(qID);
134
+ moveFuncWide(qID);
135
+
136
+ scoreArray[qID] = Number($(this).attr("sc"));
137
+
138
+ if (qID + 1 >=qNum) resultFunc();
139
+
140
+ }
141
+
142
+
143
+
144
+
145
+ function moveFuncWide(qID){
146
+ var myPos = (qID+1) * -650;
147
+ $("#qContainer").delay(500).animate({left: myPos},500);
148
+
149
+ }
150
+
151
+ function moveFuncNarrow(qID){
152
+
153
+ var myPos = (qID+1) * -300;
154
+ $("#qContainer").delay(500).animate({left: myPos},500);
155
+
156
+ }
157
+
158
+ // 両方動いてしまっている。条件によって片方だけ動かしたい
159
+
160
+
161
+ $(window).resize(function(){
162
+ var w = $(window).width();
163
+ var x = 415;
164
+ if (w <= x) {
165
+ $(".qBox").css("width", "300px");
166
+ moveFuncNarrow(qID);
167
+ } else {
168
+ moveFuncWide(qID);
169
+ }
170
+ });
171
+
172
+ ```

1

追記

2019/06/25 03:18

投稿

ueda_kesuke
ueda_kesuke

スコア34

title CHANGED
File without changes
body CHANGED
@@ -26,4 +26,74 @@
26
26
 
27
27
  ちなみに、`$(".qBox").css("width", "300px");`はきちんと機能します。
28
28
  足りない情報などありましたら教えていただきたいです。
29
- どうかご教授の方よろしくお願いいたします????‍♂️
29
+ どうかご教授の方よろしくお願いいたします????‍♂️
30
+
31
+
32
+ ```
33
+ selectArray = [-1,-1,-1,-1,-1,-1,-1,-1,-1,-1];
34
+ scoreArray = [0,0,0,0,0,0,0,0,0,0];
35
+ qNum = selectArray.length;
36
+
37
+ function quesFunc(){
38
+ var idArray = this.id.split("_");
39
+ var qID = Number(idArray[0]);
40
+ var ansID = Number(idArray[1]);
41
+
42
+ var selectID = selectArray[qID];
43
+
44
+ if (ansID == selectID) return;
45
+
46
+ $("#" + qID + "_" + ansID).addClass("selected")
47
+ $("#" + qID + "_" + selectID).removeClass("selected");
48
+
49
+ selectArray[qID] = ansID;
50
+
51
+ moveFuncWide(qID);
52
+ moveFuncNarrow(qID);
53
+
54
+ scoreArray[qID] = Number($(this).attr("sc"));
55
+
56
+ if (qID + 1 >=qNum) resultFunc();
57
+
58
+ }
59
+
60
+
61
+
62
+
63
+ function moveFuncWide(vol){
64
+ var myPos = (vol+1) * -650;
65
+ $("#qContainer").delay(500).animate({left: myPos},500);
66
+ return false;
67
+ }
68
+
69
+ function moveFuncNarrow(vol){
70
+
71
+ var myPos = (vol+1) * -300;
72
+ $("#qContainer").delay(500).animate({left: myPos},500);
73
+ return false;
74
+ }
75
+
76
+ // 両方動いてしまっている。条件によって片方だけ動かしたい
77
+
78
+
79
+ $(window).resize(function(){
80
+ var w = $(window).width();
81
+ var x = 415;
82
+ if (w <= x) {
83
+ $(".qBox").css("width", "300px");
84
+ moveFuncNarrow();
85
+ } else {
86
+ moveFuncWide();
87
+ }
88
+ });
89
+ .
90
+ .
91
+ .
92
+ $(function(){
93
+
94
+ $("ul>li").click(quesFunc);
95
+ });
96
+
97
+ ```
98
+ アドバイスをいただいたように、moveFuncNarrowとmoveFuncWideを定義したのですが、両方動いてしまいます。
99
+ 画面幅に応じてどちらか片方を動かしたいです。return文とかなのかなと思ったのですが、うまく使えませんでした...。ご教授いただきたいです。