回答編集履歴

1

テキスト追加

2021/09/28 15:27

投稿

退会済みユーザー
test CHANGED
@@ -63,3 +63,105 @@
63
63
  ```
64
64
 
65
65
  とすれば、doneFirstView に `true` か `false` のboolean値として、初回のページビュー済みか?のフラグが取れます。それか、`first-view-date` というキーにして、初回表示の日時を入れておくとかもアリやもしれへん。
66
+
67
+
68
+
69
+
70
+
71
+ ### 追記
72
+
73
+
74
+
75
+ 参考になりそうなもん、ざっくり作ってみたで。丸っとコピペしたHTMLファイルを作って表示させてみたってや〜
76
+
77
+
78
+
79
+ ```html
80
+
81
+ <!DOCTYPE html>
82
+
83
+ <html lang="ja">
84
+
85
+ <head>
86
+
87
+ <meta charset="UTF-8">
88
+
89
+ <title>teratail 361619</title>
90
+
91
+ <script src="https://cdnjs.cloudflare.com/ajax/libs/dayjs/1.10.7/dayjs.min.js"></script>
92
+
93
+ <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta2/css/all.min.css">
94
+
95
+ <script>
96
+
97
+ document.addEventListener('DOMContentLoaded', function () {
98
+
99
+ const FIRST_VIEWED_KEY = 'first-viewed-at';
100
+
101
+ const loadingIcon = document.getElementById("loading");
102
+
103
+
104
+
105
+ const firstViewedAt = localStorage.getItem(FIRST_VIEWED_KEY);
106
+
107
+ if (!firstViewedAt) {
108
+
109
+ loadingIcon.classList.add("active");
110
+
111
+ setTimeout(function () {
112
+
113
+ localStorage.setItem(FIRST_VIEWED_KEY, dayjs().format('YYYY/MM/DD HH:mm:ss'));
114
+
115
+ loadingIcon.classList.remove("active");
116
+
117
+ }, 3000);
118
+
119
+ }
120
+
121
+
122
+
123
+ // ボタンをクリックすると、localStorageに保存した初回ページビュー日時を消去
124
+
125
+ const clearBtn = document.getElementById("clearBtn");
126
+
127
+ clearBtn.addEventListener('click', function() {
128
+
129
+ localStorage.removeItem(FIRST_VIEWED_KEY);
130
+
131
+ });
132
+
133
+
134
+
135
+ });
136
+
137
+ </script>
138
+
139
+ <style>
140
+
141
+ #loading { display: none; }
142
+
143
+ #loading.active { display: block; }
144
+
145
+ </style>
146
+
147
+ </head>
148
+
149
+ <body>
150
+
151
+ <h2>Hello World</h2>
152
+
153
+ <div class="fa-3x" id="loading">
154
+
155
+ <i class="fas fa-spinner fa-pulse"></i>
156
+
157
+ </div>
158
+
159
+ <button id="clearBtn">リセット</button>
160
+
161
+ </body>
162
+
163
+ </html>
164
+
165
+
166
+
167
+ ```