From 9a32aa3f1198bc4596765ea1a6d621a308f7a152 Mon Sep 17 00:00:00 2001 From: Richard Harris Date: Mon, 12 Aug 2019 09:37:29 -0400 Subject: [PATCH] update deferred transitions example --- .../06-deferred-transitions/App.svelte | 239 +++++++++--------- .../06-deferred-transitions/crossfade.js | 65 ----- .../06-deferred-transitions/images.js | 102 ++++++++ .../thumbnails/deferred-transitions.jpg | Bin 4843 -> 8999 bytes 4 files changed, 228 insertions(+), 178 deletions(-) delete mode 100644 site/content/examples/09-transitions/06-deferred-transitions/crossfade.js create mode 100644 site/content/examples/09-transitions/06-deferred-transitions/images.js diff --git a/site/content/examples/09-transitions/06-deferred-transitions/App.svelte b/site/content/examples/09-transitions/06-deferred-transitions/App.svelte index 674f1fb9b0..ab4c04a18e 100644 --- a/site/content/examples/09-transitions/06-deferred-transitions/App.svelte +++ b/site/content/examples/09-transitions/06-deferred-transitions/App.svelte @@ -1,140 +1,153 @@ +
+
+

Photo gallery

+ +
+ {#each images as image} +
+ {#if selected !== image} + + {/if} +
+ {/each} +
+ + {#if selected} + {#await selected then d} +
+ {d.alt} + +

+ via Flickr – + {d.license.name} +

+
+ {/await} + {/if} +
+
+ - -
- - -
-

todo

- {#each todos.filter(t => !t.done) as todo (todo.id)} - - {/each} -
-
-

done

- {#each todos.filter(t => t.done) as todo (todo.id)} - - {/each} -
-
\ No newline at end of file + .credit a, .credit a:visited { + color: white; + } + \ No newline at end of file diff --git a/site/content/examples/09-transitions/06-deferred-transitions/crossfade.js b/site/content/examples/09-transitions/06-deferred-transitions/crossfade.js deleted file mode 100644 index e11e18b60e..0000000000 --- a/site/content/examples/09-transitions/06-deferred-transitions/crossfade.js +++ /dev/null @@ -1,65 +0,0 @@ -import { quintOut } from 'svelte/easing'; - -export default function crossfade({ send, receive, fallback }) { - let requested = new Map(); - let provided = new Map(); - - function crossfade(from, node) { - const to = node.getBoundingClientRect(); - const dx = from.left - to.left; - const dy = from.top - to.top; - - const style = getComputedStyle(node); - const transform = style.transform === 'none' ? '' : style.transform; - - return { - duration: 400, - easing: quintOut, - css: (t, u) => ` - opacity: ${t}; - transform: ${transform} translate(${u * dx}px,${u * dy}px); - ` - }; - } - - return { - send(node, params) { - provided.set(params.key, { - rect: node.getBoundingClientRect() - }); - - return () => { - if (requested.has(params.key)) { - const { rect } = requested.get(params.key); - requested.delete(params.key); - - return crossfade(rect, node); - } - - // if the node is disappearing altogether - // (i.e. wasn't claimed by the other list) - // then we need to supply an outro - provided.delete(params.key); - return fallback(node, params); - }; - }, - - receive(node, params) { - requested.set(params.key, { - rect: node.getBoundingClientRect() - }); - - return () => { - if (provided.has(params.key)) { - const { rect } = provided.get(params.key); - provided.delete(params.key); - - return crossfade(rect, node); - } - - requested.delete(params.key); - return fallback(node, params); - }; - } - }; -} \ No newline at end of file diff --git a/site/content/examples/09-transitions/06-deferred-transitions/images.js b/site/content/examples/09-transitions/06-deferred-transitions/images.js new file mode 100644 index 0000000000..d3ce723758 --- /dev/null +++ b/site/content/examples/09-transitions/06-deferred-transitions/images.js @@ -0,0 +1,102 @@ +const BY = { + name: 'CC BY 2.0', + url: 'https://creativecommons.org/licenses/by/2.0/' +}; + +const BY_SA = { + name: 'CC BY-SA 2.0', + url: 'https://creativecommons.org/licenses/by-sa/2.0/' +}; + +const BY_ND = { + name: 'CC BY-ND 2.0', + url: 'https://creativecommons.org/licenses/by-nd/2.0/' +}; + +// via http://labs.tineye.com/multicolr +export default [ + { + color: '#001f3f', + id: '1', + alt: 'Crepuscular rays', + path: '43428526@N03/7863279376', + license: BY + }, + { + color: '#0074D9', + id: '2', + alt: 'Lapland winter scene', + path: '25507134@N00/6527537485', + license: BY + }, + { + color: '#7FDBFF', + id: '3', + alt: 'Jellyfish', + path: '37707866@N00/3354331318', + license: BY + }, + { + color: '#39CCCC', + id: '4', + alt: 'A man scuba diving', + path: '32751486@N00/4608886209', + license: BY_SA + }, + { + color: '#3D9970', + id: '5', + alt: 'Underwater scene', + path: '25483059@N08/5548569010', + license: BY + }, + { + color: '#2ECC40', + id: '6', + alt: 'Ferns', + path: '8404611@N06/2447470760', + license: BY + }, + { + color: '#01FF70', + id: '7', + alt: 'Posters in a bar', + path: '33917831@N00/114428206', + license: BY_SA + }, + { + color: '#FFDC00', + id: '8', + alt: 'Daffodil', + path: '46417125@N04/4818617089', + license: BY_ND + }, + { + color: '#FF851B', + id: '9', + alt: 'Dust storm in Sydney', + path: '56068058@N00/3945496657', + license: BY + }, + { + color: '#FF4136', + id: '10', + alt: 'Postbox', + path: '31883499@N05/4216820032', + license: BY + }, + { + color: '#85144b', + id: '11', + alt: 'Fireworks', + path: '8484971@N07/2625506561', + license: BY_ND + }, + { + color: '#B10DC9', + id: '12', + alt: 'The Stereophonics', + path: '58028312@N00/5385464371', + license: BY_ND + } +]; \ No newline at end of file diff --git a/site/static/examples/thumbnails/deferred-transitions.jpg b/site/static/examples/thumbnails/deferred-transitions.jpg index 48cc6eb45db81f26cbec5ccda695ab6eea07bdf2..3a7fe90f2f3c91d9d4b711e9eb93b993f5c79ec7 100644 GIT binary patch literal 8999 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 literal 4843 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 AG5`Po