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

質問編集履歴

3

指摘を受けたため

2020/07/03 15:12

投稿

Yuto1800
Yuto1800

スコア6

title CHANGED
File without changes
body CHANGED
@@ -8,18 +8,34 @@
8
8
 
9
9
  htmlのソースコード
10
10
 
11
+
12
+ <!DOCTYPE html>
11
13
  <html lang="ja" dir="ltr">
12
14
  <head>
13
15
  <meta charset="utf-8">
14
16
  <title>Yuto's Room</title>
15
17
  <link rel="stylesheet" href="reset.css">
16
18
  <link rel="stylesheet" href="style.css">
17
- <link href="https://use.fontawesome.com/releases/v5.6.1/css/all.css" rel="stylesheet">
18
- <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome-animation/0.0.10/font-awesome-animation.css" type="text/css" media="all" />
19
19
  </head>
20
20
  <body>
21
+
22
+ <!-- ヘッダー -->
23
+ <header>
24
+
25
+ </header>
26
+
27
+ <!-- プロフィール -->
28
+ <div class="heading-txt">
29
+ <h2><i class="fas fa-user"></i> PROFILE</h2>
30
+ </div>
31
+
32
+
33
+ <!-- スキル -->
34
+ <div class="skills heading-txt">
35
+ <h2><i class="fas fa-wrench"></i> SKILLS</h2>
36
+ </div>
21
-    <div class="container" id="scene-2-content">
37
+ <div class="container" id="scene-2-content">
22
- <div class="skill-wrapper" id="skill-scroll">
38
+ <div class="skill-wrapper">
23
39
  <div class="skill-item">
24
40
  <!-- パイチャート -->
25
41
  <div class="charts">
@@ -45,12 +61,240 @@
45
61
  </div>
46
62
  </div>
47
63
  </div>
64
+ <!-- パイチャートここまで -->
65
+ <div class="skill-txt">
66
+ <h3 class="html-color">HTML</h3>
67
+ <p>SEOを考慮し、見やすく、後から編集しやすいコーディングをします。</p>
68
+ </div>
48
69
  </div>
70
+ <div class="skill-item">
71
+ <div class="charts">
72
+ <div class="chart" id="pi-css">
73
+ <div class="circle-mask-outer left">
74
+ <div class="circle-mask-inner">
75
+ <div class="circle-body"></div>
76
+ </div>
77
+ </div>
78
+ <div class="circle-mask-outer right">
79
+ <div class="circle-mask-inner">
80
+ <div class="circle-body"></div>
81
+ </div>
82
+ </div>
83
+ <div class="chart-content">
84
+ <p class="text">
85
+ <i class="fab fa-css3-alt fa-2x css-color"></i>
86
+ <div class="percent">
87
+ <span class="percent-number">70</span>
88
+ <span class="percent-symbol">%</span>
89
+ </div>
90
+ </p>
91
+ </div>
92
+ </div>
93
+ </div>
94
+ <div class="skill-txt">
95
+ <h3 class="css-color">CSS</h3>
96
+ <p>後から編集しやすく、パーフェクトピクセルを意識して綺麗にコーディングをします</p>
97
+ </div>
98
+ </div>
49
99
  </div>
50
100
  </div>
101
+ <!-- フッター -->
102
+ <footer>
103
+ <p><small>&copy; 2020 / Yuto Nagayoshi / All Rights Reserved.</small></p>
51
-  </body>
104
+ </footer>
52
105
 
53
106
 
107
+ <!-- JavaScriptファイル -->
108
+ <script src="js/jquery-3.5.1.min.js"></script>
109
+ <script src="js/script.js"></script>
110
+ </body>
111
+ </html>
112
+
113
+ cssのコード
114
+
115
+
116
+ @charset "utf-8";
117
+
118
+
119
+ /* 共通 */
120
+ body {
121
+ width: 100vw;
122
+ color: #5fc1c7;
123
+ background-color: #000000;
124
+ font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
125
+ }
126
+
127
+ a {
128
+ text-decoration: none;
129
+ }
130
+
131
+ .container {
132
+ width: 90%;
133
+ margin: 100px auto;
134
+ max-width: 1200px;
135
+ }
136
+
137
+ .heading-txt {
138
+ background-color: #1d4763;
139
+ border-top: #e6e500 dotted 5px;
140
+ border-bottom: #e6e500 dotted 5px;
141
+ height: 1800px;
142
+ width: 100vw;
143
+ h2 {
144
+ text-align: center;
145
+ color: #e6e500;
146
+ line-height: 180px;
147
+ font-size: 45px;
148
+ font-weight: 500;
149
+ letter-spacing: 3px;
150
+ }
151
+ }
152
+
153
+
154
+
155
+ /* スキル */
156
+ .skill-item {
157
+ display: flex;
158
+ margin-top: 10px;
159
+ }
160
+
161
+ .skill-wrapper {
162
+ margin: 0 15%;
163
+ }
164
+
165
+ .skill-txt {
166
+ margin-left: 25px;
167
+ margin-top: 10px;
168
+ h3 {
169
+ font-size: 25px;
170
+ }
171
+ p {
172
+ margin-top: 10px;
173
+ letter-spacing: 1;
174
+ color: #ffffff;
175
+ }
176
+ }
177
+
178
+
179
+ /* フッター */
180
+ footer {
181
+ height: 150px;
182
+ background-color: #1d4763;
183
+ p {
184
+ text-align: center;
185
+ line-height: 150px;
186
+ }
187
+ }
188
+
189
+
190
+ /* パイチャート */
191
+ .chart {
192
+ position: relative;
193
+ width: 80px;
194
+ height: 80px;
195
+ }
196
+
197
+ .circle-mask-outer, .circle-mask-inner {
198
+ overflow: hidden;
199
+ position: absolute;
200
+ width: 40px;
201
+ height: 80px;
202
+ }
203
+
204
+ .circle-mask-outer.left {
205
+ left: 0;
206
+ }
207
+
208
+ .circle-mask-outer.right {
209
+ right: 0;
210
+ }
211
+
212
+ .circle-mask-inner {
213
+ -webkit-transform: rotate(0);
214
+ -ms-transform: rotate(0);
215
+ transform: rotate(0);
216
+ }
217
+
218
+ .circle-mask-outer.left {
219
+ .circle-mask-inner {
220
+ left: 100%;
221
+ -webkit-transform-origin: 0 50%;
222
+ -ms-transform-origin: 0 50%;
223
+ transform-origin: 0 50%;
224
+ }
225
+ }
226
+
227
+ .circle-mask-outer.right {
228
+ .circle-mask-inner {
229
+ right: 100%;
230
+ -webkit-transform-origin: 100% 50%;
231
+ -ms-transform-origin: 100% 50%;
232
+ transform-origin: 100% 50%;
233
+ }
234
+ }
235
+
236
+ .circle-body {
237
+ border-radius: 50%;
238
+ position: absolute;
239
+ width: 80px;
240
+ height: 80px;
241
+ }
242
+
243
+ .circle-mask-outer.left {
244
+ .circle-body {
245
+ right: 0;
246
+ }
247
+ }
248
+
249
+ .circle-mask-outer.right {
250
+ .circle-body {
251
+ left: 0;
252
+ }
253
+ }
254
+
255
+ .chart-content {
256
+ position: absolute;
257
+ top: 9px;
258
+ left: 8px;
259
+ width: 63px;
260
+ height: 63px;
261
+ background-color: #fff;
262
+ border-radius: 50%;
263
+ text-align: center;
264
+ .text {
265
+ display: flex;
266
+ flex-direction: column;
267
+ padding-top: 5px;
268
+ }
269
+ }
270
+
271
+ .percent {
272
+ span {
273
+ color: #000000;
274
+ }
275
+ }
276
+
277
+ #pi-html {
278
+ .circle-body {
279
+ background-color: #00a040;
280
+ }
281
+ }
282
+
283
+ .html-color {
284
+ color: #00a040;
285
+ }
286
+
287
+ #pi-css {
288
+ .circle-body {
289
+ background-color: #e6191c;
290
+ }
291
+ }
292
+
293
+ .css-color {
294
+ color: #e6191c;
295
+ }
296
+
297
+
54
298
  jsのソースコード
55
299
 
56
300
 
@@ -93,9 +337,4 @@
93
337
  }
94
338
  });
95
339
  });
96
- });
340
+ });
97
-
98
-
99
- ![イメージ説明](a1b243bd2d71b40c5095f6b0167121d4.png)
100
-
101
- ![イメージ説明](90fa590ef078fd01d089ae3a115174dc.png)

2

指摘を受けたため

2020/07/03 15:12

投稿

Yuto1800
Yuto1800

スコア6

title CHANGED
File without changes
body CHANGED
@@ -6,8 +6,96 @@
6
6
 
7
7
  理想としては、スクロールで可視範囲に入ったら、activateScene2 という関数を実行できるようにタイミングを設定するようなプログラムを組みたいです。
8
8
 
9
+ htmlのソースコード
9
10
 
11
+ <html lang="ja" dir="ltr">
12
+ <head>
13
+ <meta charset="utf-8">
14
+ <title>Yuto's Room</title>
15
+ <link rel="stylesheet" href="reset.css">
16
+ <link rel="stylesheet" href="style.css">
17
+ <link href="https://use.fontawesome.com/releases/v5.6.1/css/all.css" rel="stylesheet">
18
+ <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome-animation/0.0.10/font-awesome-animation.css" type="text/css" media="all" />
19
+ </head>
20
+ <body>
21
+    <div class="container" id="scene-2-content">
22
+ <div class="skill-wrapper" id="skill-scroll">
23
+ <div class="skill-item">
24
+ <!-- パイチャート -->
25
+ <div class="charts">
26
+ <div class="chart" id="pi-html">
27
+ <div class="circle-mask-outer left">
28
+ <div class="circle-mask-inner">
29
+ <div class="circle-body"></div>
30
+ </div>
31
+ </div>
32
+ <div class="circle-mask-outer right">
33
+ <div class="circle-mask-inner">
34
+ <div class="circle-body"></div>
35
+ </div>
36
+ </div>
37
+ <div class="chart-content">
38
+ <p class="text">
39
+ <i class="fab fa-html5 fa-2x html-color"></i>
40
+ <div class="percent">
41
+ <span class="percent-number">70</span>
42
+ <span class="percent-symbol">%</span>
43
+ </div>
44
+ </p>
45
+ </div>
46
+ </div>
47
+ </div>
48
+ </div>
49
+ </div>
50
+ </div>
51
+  </body>
10
52
 
53
+
54
+ jsのソースコード
55
+
56
+
57
+ $(function(){
58
+ /* 回転アニメーションのやつ */
59
+ function activateScene2() {
60
+ var $content = $('#scene-2-content'),
61
+ $charts = $content.find('.chart');
62
+
63
+ $charts.each(function() {
64
+ var $chart = $(this),
65
+ $circleLeft = $chart.find('.left .circle-mask-inner').css({transform: 'rotate(0)'}),
66
+ $circleRight = $chart.find('.right .circle-mask-inner').css({transform: 'rotate(0)'}),
67
+ $percentNumber = $chart.find('.percent-number'),
68
+ percentData = $percentNumber.text();
69
+ $percentNumber.text(0);
70
+
71
+ $({percent: 0}).delay(1000).animate({percent: percentData}, {duration: 1500, progress: function() {
72
+ var now = this.percent,
73
+ deg = now * 360 / 100,
74
+ degRight = Math.min(Math.max(deg, 0), 180),
75
+ degLeft = Math.min(Math.max(deg - 180, 0), 180);
76
+ $circleRight.css({transform: 'rotate(' + degRight + 'deg)'});
77
+ $circleLeft.css({transform: 'rotate(' + degLeft +'deg)'});
78
+ $percentNumber.text(Math.floor(now));
79
+ }});
80
+ });
81
+ }
82
+
83
+ /* スクロールしたらアニメーションのやつ */
84
+ $(window).on('scroll', function() {
85
+ var $skillScroll = $('#skill-scroll');
86
+
87
+ $skillScroll.each(function() {
88
+ var skillOffset = $(this).offset().top,
89
+ scrollPos = $(window).scrollTop();
90
+
91
+ if(scrollPos > skillOffset) {
92
+ $(this).activateScene2();
93
+ }
94
+ });
95
+ });
96
+ });
97
+
98
+
11
99
  ![イメージ説明](a1b243bd2d71b40c5095f6b0167121d4.png)
12
100
 
13
101
  ![イメージ説明](90fa590ef078fd01d089ae3a115174dc.png)

1

結果的にどうしたいかを追加しました

2020/07/03 14:17

投稿

Yuto1800
Yuto1800

スコア6

title CHANGED
File without changes
body CHANGED
@@ -4,8 +4,10 @@
4
4
  すると動かなくなりました。
5
5
  円チャート単体では動いているので、『可視範囲に入ったらアニメーションさせる』プログラムが間違っていると思うのですが調べても解決方法が分からず、知恵をお借りしたく質問しました。
6
6
 
7
+ 理想としては、スクロールで可視範囲に入ったら、activateScene2 という関数を実行できるようにタイミングを設定するようなプログラムを組みたいです。
7
8
 
8
9
 
10
+
9
11
  ![イメージ説明](a1b243bd2d71b40c5095f6b0167121d4.png)
10
12
 
11
13
  ![イメージ説明](90fa590ef078fd01d089ae3a115174dc.png)