From 1b44b5bc1b0f7f56ebf62f621ae817e58300d4f9 Mon Sep 17 00:00:00 2001 From: mattmorganpdx Date: Thu, 8 Dec 2016 15:30:19 -0800 Subject: [PATCH 01/20] Completed Lesson #1 --- 01 - JavaScript Drum Kit/index.html | 33 ++++++++++++++++++----------- 1 file changed, 21 insertions(+), 12 deletions(-) diff --git a/01 - JavaScript Drum Kit/index.html b/01 - JavaScript Drum Kit/index.html index a18f2bc2ca..a3329b0f4c 100644 --- a/01 - JavaScript Drum Kit/index.html +++ b/01 - JavaScript Drum Kit/index.html @@ -58,24 +58,33 @@ From 4be6f7acb57c2e8a71db5c88644cfff357c7c59d Mon Sep 17 00:00:00 2001 From: mattmorganpdx Date: Fri, 9 Dec 2016 13:25:47 -0800 Subject: [PATCH 02/20] Completed Lesson #2 --- 02 - JS + CSS Clock/index.html | 48 ++++++++++++++++++++++------------ 1 file changed, 32 insertions(+), 16 deletions(-) diff --git a/02 - JS + CSS Clock/index.html b/02 - JS + CSS Clock/index.html index 36c420f534..33748ec426 100644 --- a/02 - JS + CSS Clock/index.html +++ b/02 - JS + CSS Clock/index.html @@ -69,27 +69,43 @@ From b29d8a16c91a12ce456d96600f58a35671c0ae96 Mon Sep 17 00:00:00 2001 From: mattmorganpdx Date: Wed, 14 Dec 2016 16:58:07 -0800 Subject: [PATCH 03/20] Completed Lesson #3 --- 03 - CSS Variables/index.html | 83 +++++++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 03 - CSS Variables/index.html diff --git a/03 - CSS Variables/index.html b/03 - CSS Variables/index.html new file mode 100644 index 0000000000..bc2ae5cd90 --- /dev/null +++ b/03 - CSS Variables/index.html @@ -0,0 +1,83 @@ + + + + + Scoped CSS Variables and JS + + +

Update CSS Variables with JS

+ +
+ + + + + + + + +
+ + + + + + + + From aa7340d32001f16c1f0272290a0b77fd8c3d5ec3 Mon Sep 17 00:00:00 2001 From: mattmorganpdx Date: Tue, 20 Dec 2016 16:11:26 -0800 Subject: [PATCH 04/20] Completed Lesson #4 --- 04 - Array Cardio Day 1/index.html | 100 +++++++++++++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100644 04 - Array Cardio Day 1/index.html diff --git a/04 - Array Cardio Day 1/index.html b/04 - Array Cardio Day 1/index.html new file mode 100644 index 0000000000..8cc492a631 --- /dev/null +++ b/04 - Array Cardio Day 1/index.html @@ -0,0 +1,100 @@ + + + + + Array Cardio 💪 + + + + + From ab891c3f8a6a4470a2d544d8bfbd1af93834842b Mon Sep 17 00:00:00 2001 From: mattmorganpdx Date: Tue, 20 Dec 2016 16:29:12 -0800 Subject: [PATCH 05/20] Added ; --- 04 - Array Cardio Day 1/index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/04 - Array Cardio Day 1/index.html b/04 - Array Cardio Day 1/index.html index 8cc492a631..26954f3b98 100644 --- a/04 - Array Cardio Day 1/index.html +++ b/04 - Array Cardio Day 1/index.html @@ -93,7 +93,7 @@ obj[item]++; return obj; }, {}) - console.table(trans) + console.table(trans); From fae0dd6806d903716b3b0defc6bcd0485a7b7f5e Mon Sep 17 00:00:00 2001 From: mattmorganpdx Date: Tue, 20 Dec 2016 16:37:03 -0800 Subject: [PATCH 06/20] Completed Lesson 5 --- 05 - Flex Panel Gallery/index.html | 154 +++++++++++++++++++++++++++++ 1 file changed, 154 insertions(+) create mode 100644 05 - Flex Panel Gallery/index.html diff --git a/05 - Flex Panel Gallery/index.html b/05 - Flex Panel Gallery/index.html new file mode 100644 index 0000000000..ce9cea514f --- /dev/null +++ b/05 - Flex Panel Gallery/index.html @@ -0,0 +1,154 @@ + + + + + Flex Panels 💪 + + + + + + +
+
+

Hey

+

Let's

+

Dance

+
+
+

Give

+

Take

+

Receive

+
+
+

Experience

+

It

+

Today

+
+
+

Give

+

All

+

You can

+
+
+

Life

+

In

+

Motion

+
+
+ + + + + + + From 3fc3098e63098d8bb4aecf62e4aafb3262034899 Mon Sep 17 00:00:00 2001 From: mattmorganpdx Date: Tue, 20 Dec 2016 17:15:02 -0800 Subject: [PATCH 07/20] Completed Lesson 6 --- 06 - Type Ahead/index.html | 61 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 06 - Type Ahead/index.html diff --git a/06 - Type Ahead/index.html b/06 - Type Ahead/index.html new file mode 100644 index 0000000000..a3c84d41fc --- /dev/null +++ b/06 - Type Ahead/index.html @@ -0,0 +1,61 @@ + + + + + Type Ahead 👀 + + + + +
+ +
    +
  • Filter for a city
  • +
  • or a state
  • +
+
+ + + From 692d3c77c63cc2b59083ae00acf95ea3e6076d1f Mon Sep 17 00:00:00 2001 From: mattmorganpdx Date: Thu, 29 Dec 2016 09:48:48 -0800 Subject: [PATCH 08/20] Completed Lesson 08 --- 08 - Fun with HTML5 Canavsa/index.html | 70 ++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 08 - Fun with HTML5 Canavsa/index.html diff --git a/08 - Fun with HTML5 Canavsa/index.html b/08 - Fun with HTML5 Canavsa/index.html new file mode 100644 index 0000000000..266dbdc2a2 --- /dev/null +++ b/08 - Fun with HTML5 Canavsa/index.html @@ -0,0 +1,70 @@ + + + + + HTML5 Canvas + + + + + + + + + From b90b11d525711f9fa9579aaf46b11fae67e3a131 Mon Sep 17 00:00:00 2001 From: mattmorganpdx Date: Thu, 29 Dec 2016 10:21:24 -0800 Subject: [PATCH 09/20] Completed Lesson #9 --- 09 - Dev Tools Domination/index.html | 73 ++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 09 - Dev Tools Domination/index.html diff --git a/09 - Dev Tools Domination/index.html b/09 - Dev Tools Domination/index.html new file mode 100644 index 0000000000..20643fdd81 --- /dev/null +++ b/09 - Dev Tools Domination/index.html @@ -0,0 +1,73 @@ + + + + + Console Tricks! + + + +

×BREAK×DOWN×

+ + + + From 87063782f534d9fd8ebf0f70d8884e20ed1bcc84 Mon Sep 17 00:00:00 2001 From: mattmorganpdx Date: Fri, 30 Dec 2016 15:56:51 -0800 Subject: [PATCH 10/20] Commpleted Lesson #10 --- .../index.html | 157 ++++++++++++++++++ 1 file changed, 157 insertions(+) create mode 100644 10 - Hold Shift and Check Checkboxes/index.html diff --git a/10 - Hold Shift and Check Checkboxes/index.html b/10 - Hold Shift and Check Checkboxes/index.html new file mode 100644 index 0000000000..431ca3c76c --- /dev/null +++ b/10 - Hold Shift and Check Checkboxes/index.html @@ -0,0 +1,157 @@ + + + + + Document + + + + +
+
+ +

This is an inbox layout.

+
+
+ +

Check one item

+
+
+ +

Hold down your Shift key

+
+
+ +

Check a lower item

+
+
+ +

Everything inbetween should also be set to checked

+
+
+ +

Try do it with out any libraries

+
+
+ +

Just regular JavaScript

+
+
+ +

Good Luck!

+
+
+ +

Don't forget to tweet your result!

+
+
+ + + + From 89d78b2cb0b9c85e9fd3129993018541226e810d Mon Sep 17 00:00:00 2001 From: mattmorganpdx Date: Tue, 3 Jan 2017 09:35:49 -0800 Subject: [PATCH 11/20] completed lesson 11 --- 11 - Custom Video Player/index.html | 1 + 11 - Custom Video Player/scripts.js | 67 +++++++++++++++++++++++++++++ 2 files changed, 68 insertions(+) diff --git a/11 - Custom Video Player/index.html b/11 - Custom Video Player/index.html index fe2b55b394..bb2aa98fe9 100644 --- a/11 - Custom Video Player/index.html +++ b/11 - Custom Video Player/index.html @@ -19,6 +19,7 @@ + diff --git a/11 - Custom Video Player/scripts.js b/11 - Custom Video Player/scripts.js index e69de29bb2..9469228bf6 100644 --- a/11 - Custom Video Player/scripts.js +++ b/11 - Custom Video Player/scripts.js @@ -0,0 +1,67 @@ +/* Get elements */ +const player = document.querySelector('.player'); +const video = player.querySelector('.viewer'); +const progress = player.querySelector('.progress'); +const progressBar = player.querySelector('.progress__filled'); +const toggle = player.querySelector('.toggle'); +const skipButtons = player.querySelectorAll('[data-skip]'); +const ranges = player.querySelectorAll('.player__slider'); +const fsButton = player.querySelector('.player__fullscreen'); +let mouseDown = false; + +/*Build functions */ +function togglePlay() { + if(video.paused) { + video.play(); + } else { + video.pause(); + } +} + +function updateButton() { + const icon = this.paused ? '►' : '❚ ❚'; + toggle.textContent = icon; +} + +function skip() { + video.currentTime += parseFloat(this.dataset.skip); +} + +function handelRangeUpdate() { + video[this.name] = this.value; +} + +function handleProgress() { + const percent = (video.currentTime / video.duration) * 100; + progressBar.style.flexBasis = `${percent}%`; +} + +function scrub(e) { + const scrubTime = (e.offsetX / progress.offsetWidth) * video.duration; + video.currentTime = scrubTime +} + +function toggleFull() { + // the controls don't show in full screen so I'm not sure if it really needs + // to "toggle." + if(document.mozFullScreenElement) { + document.mozCancelFullScreen(); + } else { + video.mozRequestFullScreen(); + } +} + +/* Hook up event listeners */ +video.addEventListener('click', togglePlay); +video.addEventListener('play', updateButton); +video.addEventListener('pause', updateButton); +toggle.addEventListener('click', togglePlay); +skipButtons.forEach(button => button.addEventListener('click', skip)); +ranges.forEach(range => range.addEventListener('change', handelRangeUpdate)); +ranges.forEach(range => range.addEventListener('mousemove', handelRangeUpdate)); +video.addEventListener('timeupdate', handleProgress); +progress.addEventListener('click', scrub); +progress.addEventListener('mousemove', (e) => mouseDown && scrub(e)); +progress.addEventListener('mousedown', () => mouseDown = true); +progress.addEventListener('mouseup', () => mouseDown = false); +fsButton.addEventListener('click', toggleFull); From a5446051ffab83355bb5da33b3264aba11071c99 Mon Sep 17 00:00:00 2001 From: mattmorganpdx Date: Tue, 3 Jan 2017 09:36:13 -0800 Subject: [PATCH 12/20] finished lesson 11 --- 11 - Custom Video Player/style.css | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/11 - Custom Video Player/style.css b/11 - Custom Video Player/style.css index 41fea5522c..3bb7df20a0 100644 --- a/11 - Custom Video Player/style.css +++ b/11 - Custom Video Player/style.css @@ -46,6 +46,18 @@ body { border-color: #ffc600; } +.player__fullscreen { + background:none; + border:0; + line-height:1; + color:white; + text-align: center; + outline:0; + padding: 0; + cursor:pointer; + max-width:50px; +} + .player__slider { width:10px; height:30px; From a23ff30332075829418a6312197ca7aba4d7bd0e Mon Sep 17 00:00:00 2001 From: mattmorganpdx Date: Tue, 3 Jan 2017 10:00:15 -0800 Subject: [PATCH 13/20] finished lesson 12 --- 12 - Key Sequence Detection/index.html | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 12 - Key Sequence Detection/index.html diff --git a/12 - Key Sequence Detection/index.html b/12 - Key Sequence Detection/index.html new file mode 100644 index 0000000000..9c03e1d1cd --- /dev/null +++ b/12 - Key Sequence Detection/index.html @@ -0,0 +1,25 @@ + + + + + Key Detection + + + + + + From bff09efaea3728dd9679e7f24c5a5a0138f4c3ec Mon Sep 17 00:00:00 2001 From: mattmorganpdx Date: Tue, 3 Jan 2017 17:41:14 -0800 Subject: [PATCH 14/20] Completed Lesson 13 --- 13 - Slide in on Scroll/index.html | 144 +++++++++++++++++++++++++++++ 1 file changed, 144 insertions(+) create mode 100644 13 - Slide in on Scroll/index.html diff --git a/13 - Slide in on Scroll/index.html b/13 - Slide in on Scroll/index.html new file mode 100644 index 0000000000..47a1d65d5a --- /dev/null +++ b/13 - Slide in on Scroll/index.html @@ -0,0 +1,144 @@ + + + + + Document + + + +
+ +

Slide in on Scroll

+ +

Consectetur adipisicing elit. Tempore tempora rerum, est autem cupiditate, corporis a qui libero ipsum delectus quidem dolor at nulla, adipisci veniam in reiciendis aut asperiores omnis blanditiis quod quas laborum nam! Fuga ad tempora in aspernatur pariaturlores sunt esse magni, ut, dignissimos.

+

Lorem ipsum cupiditate, corporis a qui libero ipsum delectus quidem dolor at nulla, adipisci veniam in reiciendis aut asperiores omnis blanditiis quod quas laborum nam! Fuga ad tempora in aspernatur pariatur fugit quibusdam dolores sunt esse magni, ut, dignissimos.

+

Adipisicing elit. Tempore tempora rerum..

+

Lorem ipsum dolor sit amet, consectetur adipisicing elit. Tempore tempora rerum, est autem cupiditate, corporis a qui libero ipsum delectus quidem dolor at nulla, adipisci veniam in reiciendis aut asperiores omnis blanditiis quod quas laborum nam! Fuga ad tempora in aspernatur pariatur fugit quibusdam dolores sunt esse magni, ut, dignissimos.

+

Lorem ipsum dolor sit amet, consectetur adipisicing elit. Tempore tempora rerum, est autem cupiditate, corporis a qui libero ipsum delectus quidem dolor at nulla, adipisci veniam in reiciendis aut asperiores omnis blanditiis quod quas laborum nam! Fuga ad tempora in aspernatur pariatur fugit quibusdam dolores sunt esse magni, ut, dignissimos.

+

Lorem ipsum dolor sit amet, consectetur adipisicing elit. Tempore tempora rerum, est autem cupiditate, corporis a qui libero ipsum delectus quidem dolor at nulla, adipisci veniam in reiciendis aut asperiores omnis blanditiis quod quas laborum nam! Fuga ad tempora in aspernatur pariatur fugit quibusdam dolores sunt esse magni, ut, dignissimos.

+ + + +

Lorem ipsum dolor sit amet, consectetur adipisicing elit. Voluptates, deserunt facilis et iste corrupti omnis tenetur est. Iste ut est dicta dolor itaque adipisci, dolorum minima, veritatis earum provident error molestias. Ratione magni illo sint vel velit ut excepturi consectetur suscipit, earum modi accusamus voluptatem nostrum, praesentium numquam, reiciendis voluptas sit id quisquam. Consequatur in quis reprehenderit modi perspiciatis necessitatibus saepe, quidem, suscipit iure natus dignissimos ipsam, eligendi deleniti accusantium, rerum quibusdam fugit perferendis et optio recusandae sed ratione. Culpa, dolorum reprehenderit harum ab voluptas fuga, nisi eligendi natus maiores illum quas quos et aperiam aut doloremque optio maxime fugiat doloribus. Eum dolorum expedita quam, nesciunt

+ + + +

at provident praesentium atque quas rerum optio dignissimos repudiandae ullam illum quibusdam. Vel ad error quibusdam, illo ex totam placeat. Quos excepturi fuga, molestiae ea quisquam minus, ratione dicta consectetur officia omnis, doloribus voluptatibus? Veniam ipsum veritatis architecto, provident quas consequatur doloremque quam quidem earum expedita, ad delectus voluptatum, omnis praesentium nostrum qui aspernatur ea eaque adipisci et cumque ab? Ea voluptatum dolore itaque odio. Eius minima distinctio harum, officia ab nihil exercitationem. Tempora rem nemo nam temporibus molestias facilis minus ipsam quam doloribus consequatur debitis nesciunt tempore officiis aperiam quisquam, molestiae voluptates cum, fuga culpa. Distinctio accusamus quibusdam, tempore perspiciatis dolorum optio facere consequatur quidem ullam beatae architecto, ipsam sequi officiis dignissimos amet impedit natus necessitatibus tenetur repellendus dolor rem! Dicta dolorem, iure, facilis illo ex nihil ipsa amet officia, optio temporibus eum autem odit repellendus nisi. Possimus modi, corrupti error debitis doloribus dicta libero earum, sequi porro ut excepturi nostrum ea voluptatem nihil culpa? Ullam expedita eligendi obcaecati reiciendis velit provident omnis quas qui in corrupti est dolore facere ad hic, animi soluta assumenda consequuntur reprehenderit! Voluptate dolor nihil veniam laborum voluptas nisi pariatur sed optio accusantium quam consectetur, corrupti, sequi et consequuntur, excepturi doloremque. Tempore quis velit corporis neque fugit non sequi eaque rem hic. Facere, inventore, aspernatur. Accusantium modi atque, asperiores qui nobis soluta cumque suscipit excepturi possimus doloremque odit saepe perferendis temporibus molestiae nostrum voluptatum quis id sint quidem nesciunt culpa. Rerum labore dolor beatae blanditiis praesentium explicabo velit optio esse aperiam similique, voluptatem cum, maiores ipsa tempore. Reiciendis sed culpa atque inventore, nam ullam enim expedita consectetur id velit iusto alias vitae explicabo nemo neque odio reprehenderit soluta sint eaque. Aperiam, qui ut tenetur, voluptate doloremque officiis dicta quaerat voluptatem rerum natus magni. Eum amet autem dolor ullam.

+ + + +

Lorem ipsum dolor sit amet, consectetur adipisicing elit. Distinctio maiores adipisci quibusdam repudiandae dolor vero placeat esse sit! Quibusdam saepe aperiam explicabo placeat optio, consequuntur nihil voluptatibus expedita quia vero perferendis, deserunt et incidunt eveniet temporibus doloremque possimus facilis. Possimus labore, officia dolore! Eaque ratione saepe, alias harum laboriosam deserunt laudantium blanditiis eum explicabo placeat reiciendis labore iste sint. Consectetur expedita dignissimos, non quos distinctio, eos rerum facilis eligendi. Asperiores laudantium, rerum ratione consequatur, culpa consectetur possimus atque ab tempore illum non dolor nesciunt. Neque, rerum. A vel non incidunt, quod doloremque dignissimos necessitatibus aliquid laboriosam architecto at cupiditate commodi expedita in, quae blanditiis. Deserunt labore sequi, repellat laboriosam est, doloremque culpa reiciendis tempore excepturi. Enim nostrum fugit itaque vel corporis ullam sed tenetur ipsa qui rem quam error sint, libero. Laboriosam rem, ratione. Autem blanditiis

+ + +

laborum neque repudiandae quam, cumque, voluptate veritatis itaque, placeat veniam ad nisi. Expedita, laborum reprehenderit ratione soluta velit natus, odit mollitia. Corporis rerum minima fugiat in nostrum. Assumenda natus cupiditate hic quidem ex, quas, amet ipsum esse dolore facilis beatae maxime qui inventore, iste? Maiores dignissimos dolore culpa debitis voluptatem harum, excepturi enim reiciendis, tempora ab ipsam illum aspernatur quasi qui porro saepe iure sunt eligendi tenetur quaerat ducimus quas sequi omnis aperiam suscipit! Molestiae obcaecati officiis quo, ratione eveniet, provident pariatur. Veniam quasi expedita distinctio, itaque molestiae sequi, dolorum nisi repellendus quia facilis iusto dignissimos nam? Tenetur fugit quos autem nihil, perspiciatis expedita enim tempore, alias ab maiores quis necessitatibus distinctio molestias eum, quidem. Delectus impedit quidem laborum, fugit vel neque quo, ipsam, quasi aspernatur quas odio nihil? Veniam amet reiciendis blanditiis quis reprehenderit repudiandae neque, ab ducimus, odit excepturi voluptate saepe ipsam. Voluptatem eum error voluptas porro officiis, amet! Molestias, fugit, ut! Tempore non magnam, amet, facere ducimus accusantium eos veritatis neque.

+ + + +

Lorem ipsum dolor sit amet, consectetur adipisicing elit. Distinctio maiores adipisci quibusdam repudiandae dolor vero placeat esse sit! Quibusdam saepe aperiam explicabo placeat optio, consequuntur nihil voluptatibus expedita quia vero perferendis, deserunt et incidunt eveniet temporibus doloremque possimus facilis. Possimus labore, officia dolore! Eaque ratione saepe, alias harum laboriosam deserunt laudantium blanditiis eum explicabo placeat reiciendis labore iste sint. Consectetur expedita dignissimos, non quos distinctio, eos rerum facilis eligendi. Asperiores laudantium, rerum ratione consequatur, culpa consectetur possimus atque ab tempore illum non dolor nesciunt. Neque, rerum. A vel non incidunt, quod doloremque dignissimos necessitatibus aliquid laboriosam architecto at cupiditate commodi expedita in, quae blanditiis. Deserunt labore sequi, repellat laboriosam est, doloremque culpa reiciendis tempore excepturi. Enim nostrum fugit itaque vel corporis ullam sed tenetur ipsa qui rem quam error sint, libero. Laboriosam rem, ratione. Autem blanditiis laborum neque repudiandae quam, cumque, voluptate veritatis itaque, placeat veniam ad nisi. Expedita, laborum reprehenderit ratione soluta velit natus, odit mollitia. Corporis rerum minima fugiat in nostrum. Assumenda natus cupiditate hic quidem ex, quas, amet ipsum esse dolore facilis beatae maxime qui inventore, iste? Maiores dignissimos dolore culpa debitis voluptatem harum, excepturi enim reiciendis, tempora ab ipsam illum aspernatur quasi qui porro saepe iure sunt eligendi tenetur quaerat ducimus quas sequi omnis aperiam suscipit! Molestiae obcaecati officiis quo, ratione eveniet, provident pariatur. Veniam quasi expedita distinctio, itaque molestiae sequi, dolorum nisi repellendus quia facilis iusto dignissimos nam? Tenetur fugit quos autem nihil, perspiciatis expedita enim tempore, alias ab maiores quis necessitatibus distinctio molestias eum, quidem. Delectus impedit quidem laborum, fugit vel neque quo, ipsam, quasi aspernatur quas odio nihil? Veniam amet reiciendis blanditiis quis reprehenderit repudiandae neque, ab ducimus, odit excepturi voluptate saepe ipsam. Voluptatem eum error voluptas porro officiis, amet! Molestias, fugit, ut! Tempore non magnam, amet, facere ducimus accusantium eos veritatis neque.

+

Lorem ipsum dolor sit amet, consectetur adipisicing elit. Distinctio maiores adipisci quibusdam repudiandae dolor vero placeat esse sit! Quibusdam saepe aperiam explicabo placeat optio, consequuntur nihil voluptatibus expedita quia vero perferendis, deserunt et incidunt eveniet temporibus doloremque possimus facilis. Possimus labore, officia dolore! Eaque ratione saepe, alias harum laboriosam deserunt laudantium blanditiis eum explicabo placeat reiciendis labore iste sint. Consectetur expedita dignissimos, non quos distinctio, eos rerum facilis eligendi. Asperiores laudantium, rerum ratione consequatur, culpa consectetur possimus atque ab tempore illum non dolor nesciunt. Neque, rerum. A vel non incidunt, quod doloremque dignissimos necessitatibus aliquid laboriosam architecto at cupiditate commodi expedita in, quae blanditiis. Deserunt labore sequi, repellat laboriosam est, doloremque culpa reiciendis tempore excepturi. Enim nostrum fugit itaque vel corporis ullam sed tenetur ipsa qui rem quam error sint, libero. Laboriosam rem, ratione. Autem blanditiis laborum neque repudiandae quam, cumque, voluptate veritatis itaque, placeat veniam ad nisi. Expedita, laborum reprehenderit ratione soluta velit natus, odit mollitia. Corporis rerum minima fugiat in nostrum. Assumenda natus cupiditate hic quidem ex, quas, amet ipsum esse dolore facilis beatae maxime qui inventore, iste? Maiores dignissimos dolore culpa debitis voluptatem harum, excepturi enim reiciendis, tempora ab ipsam illum aspernatur quasi qui porro saepe iure sunt eligendi tenetur quaerat ducimus quas sequi omnis aperiam suscipit! Molestiae obcaecati officiis quo, ratione eveniet, provident pariatur. Veniam quasi expedita distinctio, itaque molestiae sequi, dolorum nisi repellendus quia facilis iusto dignissimos nam? Tenetur fugit quos autem nihil, perspiciatis expedita enim tempore, alias ab maiores quis necessitatibus distinctio molestias eum, quidem. Delectus impedit quidem laborum, fugit vel neque quo, ipsam, quasi aspernatur quas odio nihil? Veniam amet reiciendis blanditiis quis reprehenderit repudiandae neque, ab ducimus, odit excepturi voluptate saepe ipsam. Voluptatem eum error voluptas porro officiis, amet! Molestias, fugit, ut! Tempore non magnam, amet, facere ducimus accusantium eos veritatis neque.

+ + + + +
+ + + + + + + From 627602f3607bc895d05b7a2006efd1614be9b2ad Mon Sep 17 00:00:00 2001 From: mattmorganpdx Date: Thu, 5 Jan 2017 09:44:08 -0800 Subject: [PATCH 15/20] Completed Lesson #15 --- 15 - LocalStorage/index.html | 97 ++++++++++++++++++++++++++++++++++++ 1 file changed, 97 insertions(+) create mode 100644 15 - LocalStorage/index.html diff --git a/15 - LocalStorage/index.html b/15 - LocalStorage/index.html new file mode 100644 index 0000000000..c765074f42 --- /dev/null +++ b/15 - LocalStorage/index.html @@ -0,0 +1,97 @@ + + + + + LocalStorage + + + + + + + +
+

LOCAL TAPAS

+

+
    +
  • Loading Tapas...
  • +
+
+ + +
+ + + +
+ + + + + + From f3ee51c8a572c5194592dc3bfac238315142d87c Mon Sep 17 00:00:00 2001 From: mattmorganpdx Date: Thu, 5 Jan 2017 10:11:19 -0800 Subject: [PATCH 16/20] completed 16 --- 16 - Mouse Move Shadow/index.html | 65 +++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 16 - Mouse Move Shadow/index.html diff --git a/16 - Mouse Move Shadow/index.html b/16 - Mouse Move Shadow/index.html new file mode 100644 index 0000000000..d99306ea8a --- /dev/null +++ b/16 - Mouse Move Shadow/index.html @@ -0,0 +1,65 @@ + + + + + Mouse Shadow + + + +
+

🔥WOAH!

+
+ + + + + + From a84b45cab0eebe80934e77d4b61538d2b3f6c271 Mon Sep 17 00:00:00 2001 From: mattmorganpdx Date: Thu, 5 Jan 2017 11:09:29 -0800 Subject: [PATCH 17/20] Completed Lesson 17 --- 17 - Sort Without Articles/index.html | 76 +++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 17 - Sort Without Articles/index.html diff --git a/17 - Sort Without Articles/index.html b/17 - Sort Without Articles/index.html new file mode 100644 index 0000000000..7081d9b921 --- /dev/null +++ b/17 - Sort Without Articles/index.html @@ -0,0 +1,76 @@ + + + + + Sort Without Articles + + + + + +
    + + + + + From 827c9c8d0745a6e1f3ead7d87536df3228f4487c Mon Sep 17 00:00:00 2001 From: mattmorganpdx Date: Thu, 5 Jan 2017 11:54:05 -0800 Subject: [PATCH 18/20] Completed Lesson 18 --- 18 - Adding Up Times with Reduce/index.html | 208 ++++++++++++++++++++ 1 file changed, 208 insertions(+) create mode 100644 18 - Adding Up Times with Reduce/index.html diff --git a/18 - Adding Up Times with Reduce/index.html b/18 - Adding Up Times with Reduce/index.html new file mode 100644 index 0000000000..6e6dc2fe3e --- /dev/null +++ b/18 - Adding Up Times with Reduce/index.html @@ -0,0 +1,208 @@ + + + + + Videos + + +
      +
    • + Video 1 +
    • +
    • + Video 2 +
    • +
    • + Video 3 +
    • +
    • + Video 4 +
    • +
    • + Video 5 +
    • +
    • + Video 6 +
    • +
    • + Video 7 +
    • +
    • + Video 8 +
    • +
    • + Video 9 +
    • +
    • + Video 10 +
    • +
    • + Video 11 +
    • +
    • + Video 12 +
    • +
    • + Video 13 +
    • +
    • + Video 14 +
    • +
    • + Video 15 +
    • +
    • + Video 16 +
    • +
    • + Video 17 +
    • +
    • + Video 18 +
    • +
    • + Video 19 +
    • +
    • + Video 20 +
    • +
    • + Video 21 +
    • +
    • + Video 22 +
    • +
    • + Video 23 +
    • +
    • + Video 24 +
    • +
    • + Video 25 +
    • +
    • + Video 26 +
    • +
    • + Video 27 +
    • +
    • + Video 28 +
    • +
    • + Video 29 +
    • +
    • + Video 30 +
    • +
    • + Video 31 +
    • +
    • + Video 32 +
    • +
    • + Video 33 +
    • +
    • + Video 34 +
    • +
    • + Video 35 +
    • +
    • + Video 36 +
    • +
    • + Video 37 +
    • +
    • + Video 38 +
    • +
    • + Video 39 +
    • +
    • + Video 40 +
    • +
    • + Video 41 +
    • +
    • + Video 42 +
    • +
    • + Video 43 +
    • +
    • + Video 44 +
    • +
    • + Video 45 +
    • +
    • + Video 46 +
    • +
    • + Video 47 +
    • +
    • + Video 48 +
    • +
    • + Video 49 +
    • +
    • + Video 50 +
    • +
    • + Video 51 +
    • +
    • + Video 52 +
    • +
    • + Video 53 +
    • +
    • + Video 54 +
    • +
    • + Video 55 +
    • +
    • + Video 56 +
    • +
    • + Video 57 +
    • +
    • + Video 58 +
    • + + + + From 0e9be22063e5ddb816d835e22c32b459395d18ed Mon Sep 17 00:00:00 2001 From: mattmorganpdx Date: Mon, 16 Jan 2017 17:36:16 -0800 Subject: [PATCH 19/20] lesson 19 in progress --- 19 - Webcam Fun/index.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/19 - Webcam Fun/index.html b/19 - Webcam Fun/index.html index d4ffc4dc2a..a2c66ca55a 100755 --- a/19 - Webcam Fun/index.html +++ b/19 - Webcam Fun/index.html @@ -10,7 +10,7 @@
      - +
      From 3530da3e488fb0473bb42f370e686343bfbb27e3 Mon Sep 17 00:00:00 2001 From: mattmorganpdx Date: Mon, 16 Jan 2017 17:36:52 -0800 Subject: [PATCH 20/20] lesson 19 in progress --- 19 - Webcam Fun/scripts.js | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/19 - Webcam Fun/scripts.js b/19 - Webcam Fun/scripts.js index 00355f5a9c..bfddbbf761 100644 --- a/19 - Webcam Fun/scripts.js +++ b/19 - Webcam Fun/scripts.js @@ -3,3 +3,34 @@ const canvas = document.querySelector('.photo'); const ctx = canvas.getContext('2d'); const strip = document.querySelector('.strip'); const snap = document.querySelector('.snap'); + +function getVideo() { + navigator.mediaDevices.getUserMedia({ video: true, audio: false }) + .then(localMediaStream => { + console.log(localMediaStream); + video.src = window.URL.createObjectURL(localMediaStream); + video.play(); + }) + .catch(err => { + console.error(`access denied`, err); + }); +} + +function paintToCanavas() { + const width = video.videoWidth; + const height = video.videoHeight; + + canvas.width = width; + canvas.height = height; + + setInterval(() => { + ctx.drawImage(video, 0, 0, width, height); + }, 50); +} + +function takePhoto() { + snap.currentTime = 0; + snap.play(); +} + +getVideo();