From 1b674f13fb3b49104f3bbe03de3836268b7331cc Mon Sep 17 00:00:00 2001 From: Valentin Kaelin Date: Mon, 19 Aug 2019 14:49:20 +0200 Subject: [PATCH] Async background load on homepage --- client/package-lock.json | 51 ++++---------- client/src/assets/css/base.css | 10 ++- client/src/components/LazyBackgroundImage.vue | 68 +++++++++++++++++++ client/src/views/Home.vue | 54 ++++++++------- server/package-lock.json | 4 +- 5 files changed, 120 insertions(+), 67 deletions(-) create mode 100644 client/src/components/LazyBackgroundImage.vue diff --git a/client/package-lock.json b/client/package-lock.json index c92210b..f50f3e1 100644 --- a/client/package-lock.json +++ b/client/package-lock.json @@ -2889,8 +2889,7 @@ "version": "4.6.0", "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", - "dev": true, - "optional": true + "dev": true }, "coa": { "version": "2.0.2", @@ -5207,8 +5206,7 @@ "ansi-regex": { "version": "2.1.1", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "aproba": { "version": "1.2.0", @@ -5229,14 +5227,12 @@ "balanced-match": { "version": "1.0.0", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "brace-expansion": { "version": "1.1.11", "bundled": true, "dev": true, - "optional": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -5251,20 +5247,17 @@ "code-point-at": { "version": "1.1.0", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "concat-map": { "version": "0.0.1", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "console-control-strings": { "version": "1.1.0", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "core-util-is": { "version": "1.0.2", @@ -5381,8 +5374,7 @@ "inherits": { "version": "2.0.3", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "ini": { "version": "1.3.5", @@ -5394,7 +5386,6 @@ "version": "1.0.0", "bundled": true, "dev": true, - "optional": true, "requires": { "number-is-nan": "^1.0.0" } @@ -5409,7 +5400,6 @@ "version": "3.0.4", "bundled": true, "dev": true, - "optional": true, "requires": { "brace-expansion": "^1.1.7" } @@ -5417,14 +5407,12 @@ "minimist": { "version": "0.0.8", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "minipass": { "version": "2.3.5", "bundled": true, "dev": true, - "optional": true, "requires": { "safe-buffer": "^5.1.2", "yallist": "^3.0.0" @@ -5443,7 +5431,6 @@ "version": "0.5.1", "bundled": true, "dev": true, - "optional": true, "requires": { "minimist": "0.0.8" } @@ -5524,8 +5511,7 @@ "number-is-nan": { "version": "1.0.1", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "object-assign": { "version": "4.1.1", @@ -5537,7 +5523,6 @@ "version": "1.4.0", "bundled": true, "dev": true, - "optional": true, "requires": { "wrappy": "1" } @@ -5623,8 +5608,7 @@ "safe-buffer": { "version": "5.1.2", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "safer-buffer": { "version": "2.1.2", @@ -5660,7 +5644,6 @@ "version": "1.0.2", "bundled": true, "dev": true, - "optional": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -5680,7 +5663,6 @@ "version": "3.0.1", "bundled": true, "dev": true, - "optional": true, "requires": { "ansi-regex": "^2.0.0" } @@ -5724,14 +5706,12 @@ "wrappy": { "version": "1.0.2", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "yallist": { "version": "3.0.3", "bundled": true, - "dev": true, - "optional": true + "dev": true } } }, @@ -6400,8 +6380,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true, - "optional": true + "dev": true }, "string-width": { "version": "2.1.1", @@ -6419,7 +6398,6 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, - "optional": true, "requires": { "ansi-regex": "^3.0.0" } @@ -9548,8 +9526,7 @@ "version": "4.0.8", "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz", "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=", - "dev": true, - "optional": true + "dev": true }, "rx-lite-aggregates": { "version": "4.0.8", diff --git a/client/src/assets/css/base.css b/client/src/assets/css/base.css index 770568a..b9f5428 100644 --- a/client/src/assets/css/base.css +++ b/client/src/assets/css/base.css @@ -34,4 +34,12 @@ .scale-100 { transform: scale(1); -} \ No newline at end of file +} + +.fade-enter-active, .fade-leave-active { + transition: opacity 2s; +} + +.fade-enter, .fade-leave-to { + opacity: 0; +} diff --git a/client/src/components/LazyBackgroundImage.vue b/client/src/components/LazyBackgroundImage.vue new file mode 100644 index 0000000..78b9ae0 --- /dev/null +++ b/client/src/components/LazyBackgroundImage.vue @@ -0,0 +1,68 @@ + + + diff --git a/client/src/views/Home.vue b/client/src/views/Home.vue index 427af70..62183c2 100644 --- a/client/src/views/Home.vue +++ b/client/src/views/Home.vue @@ -1,31 +1,40 @@