aboutsummaryrefslogtreecommitdiff
path: root/docker/crupest-nginx/sites/www/src
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2023-07-18 17:03:46 +0800
committercrupest <crupest@outlook.com>2023-07-18 17:03:46 +0800
commit2197b07482b3500fdb87db579e7d538be17942c6 (patch)
tree8bf4a35c543dac2e8cd1bd30728cd9f1855a346e /docker/crupest-nginx/sites/www/src
parent60f6e310f344fe6b8b8206038d29500331019895 (diff)
downloadcrupest-2197b07482b3500fdb87db579e7d538be17942c6.tar.gz
crupest-2197b07482b3500fdb87db579e7d538be17942c6.tar.bz2
crupest-2197b07482b3500fdb87db579e7d538be17942c6.zip
Fix #23.
Diffstat (limited to 'docker/crupest-nginx/sites/www/src')
-rw-r--r--docker/crupest-nginx/sites/www/src/main.js18
-rw-r--r--docker/crupest-nginx/sites/www/src/style.css14
2 files changed, 30 insertions, 2 deletions
diff --git a/docker/crupest-nginx/sites/www/src/main.js b/docker/crupest-nginx/sites/www/src/main.js
index 04d7b6b..39d2ba8 100644
--- a/docker/crupest-nginx/sites/www/src/main.js
+++ b/docker/crupest-nginx/sites/www/src/main.js
@@ -23,14 +23,30 @@ function setBodyPaddingForEmotion(emotion) {
document.body.style.paddingTop = `${emotionElementHeight(emotion)}px`;
}
-setBodyPaddingForEmotion(happy);
+const sloganEmotionKey = "sloganEmotion";
+
+const savedEmotion = localStorage.getItem(sloganEmotionKey) ?? happy;
+if (savedEmotion !== happy && savedEmotion !== angry) {
+ console.error(`Invalid saved emotion: ${savedEmotion}`);
+}
+
+setBodyPaddingForEmotion(savedEmotion);
+setTimeout(() => {
+ document.body.style.transition = "padding-top 1s";
+})
/** @type {HTMLDivElement} */
const sloganContainer = document.querySelector(".slogan-container")
+setTimeout(() => {
+ sloganContainer.dataset.sloganEmotion = savedEmotion;
+ setBodyPaddingForEmotion(savedEmotion);
+}, 500);
+
for (const emotion of [happy, angry]) {
emotionElement(emotion).addEventListener("click", () => {
const opposite = emotionOpposite(emotion);
+ localStorage.setItem(sloganEmotionKey, opposite);
sloganContainer.dataset.sloganEmotion = opposite;
setBodyPaddingForEmotion(opposite);
});
diff --git a/docker/crupest-nginx/sites/www/src/style.css b/docker/crupest-nginx/sites/www/src/style.css
index 2dbf0fb..f23bbc0 100644
--- a/docker/crupest-nginx/sites/www/src/style.css
+++ b/docker/crupest-nginx/sites/www/src/style.css
@@ -6,11 +6,23 @@ body {
width: 100%;
margin: 0;
box-sizing: border-box;
- transition: padding-top 1s;
+}
+
+@keyframes article-enter {
+ from {
+ opacity: 0;
+ transform: translateY(100px);
+ }
+
+ to {
+ opacity: 1;
+ transform: translateY(0);
+ }
}
#main-article {
padding: 0 1em;
+ animation: article-enter 1s;
}
@media (min-width: 576px) {