├── images ├── cindy.jpg ├── debby.jpg ├── kami.jpg ├── leo.jpg ├── lesley.jpg ├── liz.jpg └── steven.jpg ├── index.html ├── javascripts └── site.js ├── mission-team.html ├── style.css.map ├── stylesheets ├── _sass │ ├── config │ │ ├── basic.sass │ │ └── varibles.sass │ ├── pages │ │ ├── index.sass │ │ └── team_member.sass │ ├── share │ │ ├── navbar.sass │ │ └── team-member-avatar.sass │ └── style.sass └── style.css └── team ├── Cindy ├── Day2 - clock │ ├── index.html │ ├── main.js │ └── style.css ├── Day3 - CSS variable │ ├── index.html │ ├── main.js │ └── style.css ├── Day4 - Array Cardio Day 1 │ ├── index.html │ └── main.js ├── Day5 - Flex Chick │ └── index.html ├── Day6 - Type Ahead │ ├── index.html │ ├── main.js │ └── style.css ├── Day7 - Array Cardio Day 2 │ ├── index.html │ └── main.js └── Day8 - Canvas │ ├── images │ └── cindy.png │ ├── index.html │ └── main.js ├── Debby ├── Day-1-Dum_Kit │ ├── audio │ │ ├── boom.wav │ │ ├── clap.wav │ │ ├── hihat.wav │ │ ├── kick.wav │ │ ├── openhat.wav │ │ ├── ride.wav │ │ ├── snare.wav │ │ ├── tink.wav │ │ └── tom.wav │ ├── index.html │ ├── javascript │ │ └── all.js │ └── stylesheets │ │ ├── style.css │ │ └── style.sass ├── Day-2-clock │ ├── index.html │ ├── javascript │ │ └── all.js │ └── stylesheets │ │ └── style.css ├── Day-3-CSS_Variables │ ├── index.html │ ├── javascript │ │ └── all.js │ └── stylesheets │ │ └── style.css ├── Day-4-Array_Day_1 │ ├── Array_Cardio_Day_1.html │ ├── all.js │ └── index.html └── Day-7-Array_Day_2 │ ├── all.js │ └── index.html ├── Etrex ├── Day10 - multi check │ └── index.html ├── Day2 - clock │ ├── index.html │ ├── main.js │ └── style.css ├── Day3 - CSS variable │ └── index.html ├── Day5 - menu │ ├── images │ │ ├── 1.PNG │ │ ├── 2.PNG │ │ ├── 3.PNG │ │ ├── 4.PNG │ │ ├── 5.PNG │ │ ├── 6.PNG │ │ ├── 7.PNG │ │ └── 8.PNG │ └── index.html └── Day8 - canvas │ └── index.html ├── Liz ├── Day13 - Slide in on Scroll │ └── index.html ├── Day16 - Mouse Move Shadow │ └── index.html ├── Day2 - clock │ ├── index.html │ ├── main.js │ ├── style.css │ ├── style.css.map │ └── style.scss ├── Day3 - CSS Variables │ ├── index.html │ └── main.js ├── Day4 - Array Cardio Day 1 │ ├── index.html │ └── main.js ├── Day5 - Flex Panel Gallery │ └── index.html ├── Day6 - type ahead │ ├── index.html │ └── style.css ├── Day7 - Array Cardio Day 2 │ └── index.html └── Day8 - Canvas │ └── index.html ├── Steven ├── Day1 - Drum Kit │ ├── README.md │ ├── index-Steven.html │ ├── sounds │ │ ├── boom.wav │ │ ├── clap.wav │ │ ├── hihat.wav │ │ ├── kick.wav │ │ ├── openhat.wav │ │ ├── ride.wav │ │ ├── snare.wav │ │ ├── tink.wav │ │ └── tom.wav │ └── style.css ├── Day10 - Hold Shift and Check Checkboxes │ ├── index-Steven-with-Etrex.html │ └── index-Steven.html ├── Day14 - JavaScript Reference VS Copying │ ├── README.md │ └── index-Steven.html ├── Day16 - Mouse Move Shadow │ ├── README.md │ └── index-Steve.html ├── Day17 - Sort Without Articles │ ├── READ.md │ └── index-Steven.html ├── Day2 - Clock │ ├── README.md │ └── index-Steven.html ├── Day3 - CSS Variables │ ├── README.md │ └── index-Steven.html ├── Day4 - Array Cardio Day 1 │ ├── README.md │ └── index-Steven.html └── Day5 - Flex Panel Gallery │ ├── README.md │ └── index-Steven.html └── pastleo └── day-2-clock ├── index.html ├── main.js └── style.css /images/cindy.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lizwang50/JavaScript-30weeks/5b2043d87bb363450b3146f90e88d143bf256b75/images/cindy.jpg -------------------------------------------------------------------------------- /images/debby.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lizwang50/JavaScript-30weeks/5b2043d87bb363450b3146f90e88d143bf256b75/images/debby.jpg -------------------------------------------------------------------------------- /images/kami.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lizwang50/JavaScript-30weeks/5b2043d87bb363450b3146f90e88d143bf256b75/images/kami.jpg -------------------------------------------------------------------------------- /images/leo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lizwang50/JavaScript-30weeks/5b2043d87bb363450b3146f90e88d143bf256b75/images/leo.jpg -------------------------------------------------------------------------------- /images/lesley.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lizwang50/JavaScript-30weeks/5b2043d87bb363450b3146f90e88d143bf256b75/images/lesley.jpg -------------------------------------------------------------------------------- /images/liz.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lizwang50/JavaScript-30weeks/5b2043d87bb363450b3146f90e88d143bf256b75/images/liz.jpg -------------------------------------------------------------------------------- /images/steven.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lizwang50/JavaScript-30weeks/5b2043d87bb363450b3146f90e88d143bf256b75/images/steven.jpg -------------------------------------------------------------------------------- /javascripts/site.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lizwang50/JavaScript-30weeks/5b2043d87bb363450b3146f90e88d143bf256b75/javascripts/site.js -------------------------------------------------------------------------------- /mission-team.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 |
5 | 6 | 7 | 8 | 9 | 10 | 11 | 13 | 14 |志在普度眾人,行深般若波羅蜜多時,照見五蘊皆空,度一切苦厄的卡米狗之父,人稱廚神小當家卡米的卡米。
88 |外表看似型男的扛壩子工程師。
125 |簡介
162 |美豔絕倫、豔冠四方,長得像標楷體的人都不可以入她的眼裡,人稱傳說中「 0.5 px 都不要想呼嚨我!」的設計師。黛比!
208 |黑人問號社始祖之一。想放棄 JS 嗎?被 git 雷過嗎?相對路徑是什麼?歡迎有以上疑問的黑人問號潛力者入社!
241 |早餐可以吃一週、假動作「白飯攤平之術」的創作始祖,Cindy Liu!
277 |「板橋美麗魅惑咖啡師」你看過嗎?沒看過?現在讓你看看!五倍最罩的兆兆
313 |觀自在菩薩,行深般若波羅蜜多時,照見五蘊皆空,度一切苦厄。
350 |Don't rush him T恤的擁有者。公園單槓伯。
387 |黑人問號 JS 社新社員。
419 |點我報時
Psst: have a look at the JavaScript Console
10 | -- 11 | -- 12 | -- 13 | -- 14 | -- 15 | -- 16 | -- 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /team/Cindy/Day4 - Array Cardio Day 1/main.js: -------------------------------------------------------------------------------- 1 | const q1 = document.querySelector('.q1'); 2 | const q2 = document.querySelector('.q2'); 3 | const q3 = document.querySelector('.q3'); 4 | const q4 = document.querySelector('.q4'); 5 | const q5 = document.querySelector('.q5'); 6 | const q6 = document.querySelector('.q6'); 7 | const q7 = document.querySelector('.q7'); 8 | const q8 = document.querySelector('.q8'); 9 | // Get your shorts on - this is an array workout! 10 | // ## Array Cardio Day 1 11 | 12 | // Some data we can work with 13 | const inventors = [ 14 | { first: '🐣', last: '🐣🐣🐣🐣🐣🐣🐣🐣🐣🐣🐣', year: 1879, passed: 1955 }, 15 | { first: '🐤', last: '🐤🐤🐤🐤', year: 1643, passed: 1727 }, 16 | { first: '🐔', last: '🐔🐔', year: 1564, passed: 1642 }, 17 | { first: '🐥', last: '🐥🐥🐥🐥🐥🐥🐥🐥🐥', year: 1867, passed: 1934 }, 18 | { first: '🐓', last: '🐓🐓🐓', year: 1571, passed: 1630 }, 19 | { first: '🐔', last: '🐔', year: 1473, passed: 1543 }, 20 | { first: '🐥', last: '🐥🐥🐥🐥🐥🐥🐥🐥', year: 1858, passed: 1947 }, 21 | { first: '🐣', last: '🐣🐣🐣🐣🐣🐣🐣🐣🐣🐣🐣🐣', year: 1898, passed: 1979 }, 22 | { first: '🐤', last: '🐤🐤🐤🐤🐤', year: 1815, passed: 1852 }, 23 | { first: '🐥', last: '🐥🐥🐥🐥🐥🐥🐥', year: 1855, passed: 1905 }, 24 | { first: '🐣', last: '🐣🐣🐣🐣🐣🐣🐣🐣🐣🐣', year: 1878, passed: 1968 }, 25 | { first: '🐤', last: '🐤🐤🐤🐤🐤🐤', year: 1829, passed: 1909 } 26 | ]; 27 | 28 | const people = ['Beck, Glenn', 'Becker, Carl', 'Beckett, Samuel', 'Beddoes, Mick', 'Beecher, Henry', 'Beethoven, Ludwig', 'Begin, Menachem', 'Belloc, Hilaire', 'Bellow, Saul', 'Benchley, Robert', 'Benenson, Peter', 'Ben-Gurion, David', 'Benjamin, Walter', 'Benn, Tony', 'Bennington, Chester', 'Benson, Leana', 'Bent, Silas', 'Bentsen, Lloyd', 'Berger, Ric', 'Bergman, Ingmar', 'Berio, Luciano', 'Berle, Milton', 'Berlin, Irving', 'Berne, Eric', 'Bernhard, Sandra', 'Berra, Yogi', 'Berry, Halle', 'Berry, Wendell', 'Bethea, Erin', 'Bevan, Aneurin', 'Bevel, Ken', 'Biden, Joseph', 'Bierce, Ambrose', 'Biko, Steve', 'Billings, Josh', 'Biondo, Frank', 'Birrell, Augustine', 'Black, Elk', 'Blair, Robert', 'Blair, Tony', 'Blake, William']; 29 | 30 | // Array.prototype.filter() 31 | // 1. Filter the list of inventors for those who were born in the 1500's 32 | const fifteen = inventors.filter(inventor => inventor.year >= 1500 && inventor.year < 1600); 33 | console.table(fifteen); 34 | q1.innerHTML = JSON.stringify(fifteen); 35 | 36 | // Array.prototype.map() 37 | // 2. Give us an array of the inventors first and last names 38 | const name = inventors.map(inventor => `${inventor.first} ${inventor.last}`); 39 | console.table(name); 40 | q2.innerHTML = name; 41 | 42 | // Array.prototype.sort() 43 | // 3. Sort the inventors by birthdate, oldest to youngest 44 | const sort = inventors.sort((a, b) => a.year > b.year ? 1 : -1); 45 | console.table(sort); 46 | q3.innerHTML = JSON.stringify(sort); 47 | 48 | // Array.prototype.reduce() 49 | // 4. How many years did all the inventors live all together? 50 | const reduce = inventors.reduce((total, inventor) => total + (inventor.passed - inventor.year), 0); 51 | console.log(reduce); 52 | q4.innerHTML = reduce 53 | 54 | // 5. Sort the inventors by years lived 55 | const sortLive = inventors.sort((a, b) => (a.passed - a.year) > (b.passed - b.year) ? -1 : 1); 56 | console.table(sortLive); 57 | q5.innerHTML = JSON.stringify(sortLive); 58 | 59 | // 6. create a list of Boulevards in Paris that contain 'de' anywhere in the name 60 | // https://en.wikipedia.org/wiki/Category:Boulevards_in_Paris 61 | // const category = document.querySelector('.mw-category'); 62 | // const links = Array.from(category.querySelectorAll('a')); 63 | // const de = links 64 | // .map(link => link.textContent) 65 | // .filter(streetName => streetName.includes('de')); 66 | q6.innerHTML = ["Boulevard de l'Amiral-Bruix", "Boulevard des Capucines", "Boulevard de la Chapelle", "Boulevard de Clichy", "Boulevard de l'Hôpital", "Boulevard des Italiens", "Boulevard de la Madeleine", "Boulevard de Magenta", "Boulevard Marguerite-de-Rochechouart", "Boulevard de Sébastopol", "Boulevard de Strasbourg", "Boulevard de la Zone"]; 67 | 68 | // 7. sort Exercise 69 | // Sort the people alphabetically by last name 70 | // 英文姓名一般都是先寫名(First Name),再寫姓(Last Name/Surname),若是先寫姓再寫名,標準格式是會加上一個逗號(,) 71 | const sortPeople = people.sort((a, b) => a.split(', ')[0] > b.split(', ')[0] ? 1 : -1); 72 | console.log(sortPeople); 73 | q7.innerHTML = sortPeople; 74 | 75 | // 8. Reduce Exercise 76 | // Sum up the instances of each of these 77 | const data = ['car', 'car', 'truck', 'truck', 'bike', 'walk', 'car', 'van', 'bike', 'walk', 'car', 'van', 'car', 'truck' ]; 78 | const sum = data.reduce((obj, item) => { 79 | if (!obj[item]) { 80 | obj[item] = 0; 81 | } 82 | obj[item]++; 83 | return obj; 84 | }, {}); 85 | console.log(sum); 86 | q8.innerHTML = JSON.stringify(sum); 87 | -------------------------------------------------------------------------------- /team/Cindy/Day5 - Flex Chick/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 |Psst: have a look at the JavaScript Console 🐤
9 |Psst: have a look at the JavaScript Console 💁
34 |📒 Note 👉 click me
35 | 36 |📌 Want to 👉Back home
37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /team/Debby/Day-4-Array_Day_1/all.js: -------------------------------------------------------------------------------- 1 | // Get your shorts on - this is an array workout! 2 | // ## Array Cardio Day 1 3 | 4 | // Some data we can work with 5 | const inventors = [ 6 | { first: 'Albert', last: 'Einstein', year: 1879, passed: 1955 }, 7 | { first: 'Isaac', last: 'Newton', year: 1543, passed: 1727 }, 8 | { first: 'Galileo', last: 'Galilei', year: 1564, passed: 1642 }, 9 | { first: 'Marie', last: 'Curie', year: 1867, passed: 1934 }, 10 | { first: 'Johannes', last: 'Kepler', year: 1571, passed: 1630 }, 11 | { first: 'Nicolaus', last: 'Copernicus', year: 1473, passed: 1543 }, 12 | { first: 'Max', last: 'Planck', year: 1858, passed: 1947 }, 13 | { first: 'Katherine', last: 'Blodgett', year: 1898, passed: 1979 }, 14 | { first: 'Ada', last: 'Lovelace', year: 1815, passed: 1852 }, 15 | { first: 'Sarah E.', last: 'Goode', year: 1855, passed: 1905 }, 16 | { first: 'Lise', last: 'Meitner', year: 1878, passed: 1968 }, 17 | { first: 'Hanna', last: 'Hammarström', year: 1829, passed: 1909 } 18 | ]; 19 | 20 | const people = ['Beck, Glenn', 'Becker, Carl', 'Beckett, Samuel', 'Beddoes, Mick', 'Beecher, Henry', 'Beethoven, Ludwig', 'Begin, Menachem', 'Belloc, Hilaire', 'Bellow, Saul', 'Benchley, Robert', 'Benenson, Peter', 'Ben-Gurion, David', 'Benjamin, Walter', 'Benn, Tony', 'Bennington, Chester', 'Benson, Leana', 'Bent, Silas', 'Bentsen, Lloyd', 'Berger, Ric', 'Bergman, Ingmar', 'Berio, Luciano', 'Berle, Milton', 'Berlin, Irving', 'Berne, Eric', 'Bernhard, Sandra', 'Berra, Yogi', 'Berry, Halle', 'Berry, Wendell', 'Bethea, Erin', 'Bevan, Aneurin', 'Bevel, Ken', 'Biden, Joseph', 'Bierce, Ambrose', 'Biko, Steve', 'Billings, Josh', 'Biondo, Frank', 'Birrell, Augustine', 'Black, Elk', 'Blair, Robert', 'Blair, Tony', 'Blake, William']; 21 | 22 | // Array.prototype.filter() 23 | // 1. Filter the list of inventors for those who were born in the 1500's 24 | const fifteen = inventors.filter(a => (a.year >= 1500 && a.year < 1600)); 25 | console.table(fifteen); 26 | 27 | // Array.prototype.map() 28 | // 2. Give us an array of the inventors first and last names 29 | const fullName = inventors.map((inventor => `捐贈者:${inventor.first} ${inventor.last}` )); 30 | console.log(fullName); 31 | 32 | // Array.prototype.sort() 33 | // 3. Sort the inventors by birthdate, oldest to youngest 34 | const birthdate = inventors.sort((a,b) => (b.year - a.year)); 35 | console.table(birthdate); 36 | 37 | 38 | // Array.prototype.reduce() 39 | // 4. How many years did all the inventors live all together? 40 | const totalYear = inventors.reduce((total,inventor) => (total + (inventor.passed - inventor.year)),0); 41 | console.log(totalYear); 42 | 43 | // 5. Sort the inventors by years lived 44 | const yearList = inventors.sort(function(a,b){ 45 | const prevInventor = a.passed - a.year; 46 | const nextInventor = b.passed - b.year; 47 | return prevInventor - nextInventor; 48 | }); 49 | console.table(yearList); 50 | 51 | // 列出所有歲數 52 | const newYearList = yearList.map( inventor => inventor.passed - inventor.year); 53 | console.table(newYearList); 54 | 55 | // 6. create a list of Boulevards in Paris that contain 'de' anywhere in the name 56 | // https://en.wikipedia.org/wiki/Category:Boulevards_in_Paris 57 | 58 | const category = document.querySelector('.mw-category'); 59 | const links = Array.from(category.querySelectorAll('a')); 60 | const de = links 61 | .map(link => link.textContent) 62 | .filter(streetName => streetName.includes('de')); 63 | console.log(de); 64 | 65 | // 7. sort Exercise 66 | // Sort the "people" alphabetically by last name 67 | const lastNameList = people.sort(function(lastOne,nextOne){ 68 | const [aLast, aFirst] = lastOne.split(', '); 69 | const [bLast, bFirst] = nextOne.split(', '); 70 | return aLast > bLast ? 1 : -1; 71 | }); 72 | console.table(lastNameList); 73 | 74 | // 8. Reduce Exercise 75 | // Sum up the instances of each of these 76 | const data = ['car', 'car', 'truck', 'truck', 'bike', 'walk', 'car', 'van', 'bike', 'walk', 'car', 'van', 'car', 'truck' ]; 77 | 78 | const transportation = data.reduce(function(obj,item){ 79 | // if there is no object item, then object item is equal(等於) to zero. 80 | // console.log(item); 81 | if(!obj[item]){ 82 | obj[item] = 0; 83 | } 84 | obj[item]++; 85 | return obj; 86 | },{}); 87 | 88 | console.log(transportation); 89 | 90 | 91 | -------------------------------------------------------------------------------- /team/Debby/Day-4-Array_Day_1/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 |Psst: have a look at the JavaScript Console 💁
34 |📒 Note 👉 click me
35 | 36 |📌 Want to 👉Back home
37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /team/Debby/Day-7-Array_Day_2/all.js: -------------------------------------------------------------------------------- 1 | // ## Array Cardio Day 2 2 | 3 | const people = [ 4 | { name: 'Wes', year: 1988 }, 5 | { name: 'Kait', year: 1986 }, 6 | { name: 'Irv', year: 1970 }, 7 | { name: 'Lux', year: 2015 } 8 | ]; 9 | 10 | const comments = [ 11 | { text: 'Love this!', id: 523423 }, 12 | { text: 'Super good', id: 823423 }, 13 | { text: 'You are the best', id: 2039842 }, 14 | { text: 'Ramen is my fav food ever', id: 123523 }, 15 | { text: 'Nice Nice Nice!', id: 542328 } 16 | ]; 17 | 18 | // Some and Every Checks 19 | // Array.prototype.some() // is at least one person 19 or older? 20 | 21 | // 抓到今年 22 | const currentYear = (new Date()).getFullYear(); 23 | 24 | // 回傳每一個人的年紀 25 | const personYear = people.map(person => currentYear - person.year); 26 | console.table(personYear); 27 | 28 | const isAdult = people.some(person => (currentYear - person.year >= 19)); 29 | console.log(isAdult); 30 | 31 | 32 | // Array.prototype.every() // is everyone 19 or older? 33 | 34 | const isAllAdult = people.every(person => (currentYear - person.year >= 19)) 35 | console.log(isAllAdult); 36 | 37 | 38 | // Array.prototype.find() 39 | // Find is like filter, but instead returns just the one you are looking for 40 | // find the comment with the ID of 823423 41 | 42 | const findComment = comments.find(comment => (comment.id === 823423)).text 43 | console.log(findComment); 44 | 45 | // Array.prototype.findIndex() 46 | // Find the comment with this ID 47 | // delete the comment with the ID of 123523 48 | 49 | // 找到 123523 的 Index 50 | const findIndexComment = comments.findIndex(comment => (comment.id === 123523)) 51 | console.log(findIndexComment); 52 | 53 | // 刪除原陣列資料 splice 54 | // comments.splice(findIndexComment,1); 55 | // console.table(comments); 56 | 57 | // 刪掉資料並產生新的陣列 58 | const newComments = [ 59 | ...comments.slice(0,findIndexComment), // 複製起始 index(0) 到 findIndexComment (不包含自己) 60 | ...comments.slice(findIndexComment+1) // 複製 findIndexComment+1 到之後的資料 61 | ] 62 | console.table(newComments); 63 | -------------------------------------------------------------------------------- /team/Debby/Day-7-Array_Day_2/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 |Psst: have a look at the JavaScript Console 💁
34 |📒 Note 👉 click me
35 | 36 |📌 Want to 👉Back home
37 | 38 | 39 | -------------------------------------------------------------------------------- /team/Etrex/Day10 - multi check/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 |Consectetur adipisicing elit. Tempore tempora rerum, est autem cupiditate, corporis a qui libero ipsum delectus 16 | quidem dolor at nulla, adipisci veniam in reiciendis aut asperiores omnis blanditiis quod quas laborum nam! Fuga 17 | ad tempora in aspernatur pariaturlores sunt esse magni, ut, dignissimos.
18 |Lorem ipsum cupiditate, corporis a qui libero ipsum delectus quidem dolor at nulla, adipisci veniam in reiciendis 19 | aut asperiores omnis blanditiis quod quas laborum nam! Fuga ad tempora in aspernatur pariatur fugit quibusdam 20 | dolores sunt esse magni, ut, dignissimos.
21 |Adipisicing elit. Tempore tempora rerum..
22 |Lorem ipsum dolor sit amet, consectetur adipisicing elit. Tempore tempora rerum, est autem cupiditate, corporis a 23 | qui libero ipsum delectus quidem dolor at nulla, adipisci veniam in reiciendis aut asperiores omnis blanditiis 24 | quod quas laborum nam! Fuga ad tempora in aspernatur pariatur fugit quibusdam dolores sunt esse magni, ut, 25 | dignissimos.
26 |Lorem ipsum dolor sit amet, consectetur adipisicing elit. Tempore tempora rerum, est autem cupiditate, corporis a 27 | qui libero ipsum delectus quidem dolor at nulla, adipisci veniam in reiciendis aut asperiores omnis blanditiis 28 | quod quas laborum nam! Fuga ad tempora in aspernatur pariatur fugit quibusdam dolores sunt esse magni, ut, 29 | dignissimos.
30 |Lorem ipsum dolor sit amet, consectetur adipisicing elit. Tempore tempora rerum, est autem cupiditate, corporis a 31 | qui libero ipsum delectus quidem dolor at nulla, adipisci veniam in reiciendis aut asperiores omnis blanditiis 32 | quod quas laborum nam! Fuga ad tempora in aspernatur pariatur fugit quibusdam dolores sunt esse magni, ut, 33 | dignissimos.
34 | 35 |Lorem ipsum dolor sit amet, consectetur adipisicing elit. Voluptates, deserunt facilis et iste corrupti omnis 38 | tenetur est. Iste ut est dicta dolor itaque adipisci, dolorum minima, veritatis earum provident error molestias. 39 | Ratione magni illo sint vel velit ut excepturi consectetur suscipit, earum modi accusamus voluptatem nostrum, 40 | praesentium numquam, reiciendis voluptas sit id quisquam. Consequatur in quis reprehenderit modi perspiciatis 41 | necessitatibus saepe, quidem, suscipit iure natus dignissimos ipsam, eligendi deleniti accusantium, rerum 42 | quibusdam fugit perferendis et optio recusandae sed ratione. Culpa, dolorum reprehenderit harum ab voluptas fuga, 43 | nisi eligendi natus maiores illum quas quos et aperiam aut doloremque optio maxime fugiat doloribus. Eum dolorum 44 | expedita quam, nesciunt
45 | 46 |at provident praesentium atque quas rerum optio dignissimos repudiandae ullam illum quibusdam. Vel ad error 49 | quibusdam, illo ex totam placeat. Quos excepturi fuga, molestiae ea quisquam minus, ratione dicta consectetur 50 | officia omnis, doloribus voluptatibus? Veniam ipsum veritatis architecto, provident quas consequatur doloremque 51 | quam quidem earum expedita, ad delectus voluptatum, omnis praesentium nostrum qui aspernatur ea eaque adipisci et 52 | cumque ab? Ea voluptatum dolore itaque odio. Eius minima distinctio harum, officia ab nihil exercitationem. 53 | Tempora rem nemo nam temporibus molestias facilis minus ipsam quam doloribus consequatur debitis nesciunt tempore 54 | officiis aperiam quisquam, molestiae voluptates cum, fuga culpa. Distinctio accusamus quibusdam, tempore 55 | perspiciatis dolorum optio facere consequatur quidem ullam beatae architecto, ipsam sequi officiis dignissimos 56 | amet impedit natus necessitatibus tenetur repellendus dolor rem! Dicta dolorem, iure, facilis illo ex nihil ipsa 57 | amet officia, optio temporibus eum autem odit repellendus nisi. Possimus modi, corrupti error debitis doloribus 58 | dicta libero earum, sequi porro ut excepturi nostrum ea voluptatem nihil culpa? Ullam expedita eligendi obcaecati 59 | reiciendis velit provident omnis quas qui in corrupti est dolore facere ad hic, animi soluta assumenda 60 | consequuntur reprehenderit! Voluptate dolor nihil veniam laborum voluptas nisi pariatur sed optio accusantium quam 61 | consectetur, corrupti, sequi et consequuntur, excepturi doloremque. Tempore quis velit corporis neque fugit non 62 | sequi eaque rem hic. Facere, inventore, aspernatur. Accusantium modi atque, asperiores qui nobis soluta cumque 63 | suscipit excepturi possimus doloremque odit saepe perferendis temporibus molestiae nostrum voluptatum quis id sint 64 | quidem nesciunt culpa. Rerum labore dolor beatae blanditiis praesentium explicabo velit optio esse aperiam 65 | similique, voluptatem cum, maiores ipsa tempore. Reiciendis sed culpa atque inventore, nam ullam enim expedita 66 | consectetur id velit iusto alias vitae explicabo nemo neque odio reprehenderit soluta sint eaque. Aperiam, qui ut 67 | tenetur, voluptate doloremque officiis dicta quaerat voluptatem rerum natus magni. Eum amet autem dolor ullam.
68 | 69 |Lorem ipsum dolor sit amet, consectetur adipisicing elit. Distinctio maiores adipisci quibusdam repudiandae dolor
72 | vero placeat esse sit! Quibusdam saepe aperiam explicabo placeat optio, consequuntur nihil voluptatibus expedita
73 | quia vero perferendis, deserunt et incidunt eveniet temporibus doloremque possimus facilis. Possimus labore, officia dolore! Eaque
75 | ratione saepe, alias harum laboriosam deserunt laudantium blanditiis eum explicabo placeat reiciendis labore iste
76 | sint. Consectetur expedita dignissimos, non quos distinctio, eos rerum facilis eligendi. Asperiores laudantium,
77 | rerum ratione consequatur, culpa consectetur possimus atque ab tempore illum non dolor nesciunt. Neque, rerum. A
78 | vel non incidunt, quod doloremque dignissimos necessitatibus aliquid laboriosam architecto at cupiditate commodi
79 | expedita in, quae blanditiis. Deserunt labore sequi, repellat laboriosam est, doloremque culpa reiciendis tempore
80 | excepturi. Enim nostrum fugit itaque vel corporis ullam sed tenetur ipsa qui rem quam error sint, libero.
81 | Laboriosam rem, ratione. Autem blanditiis
laborum neque repudiandae quam, cumque, voluptate veritatis itaque, placeat veniam ad nisi. Expedita, laborum 85 | reprehenderit ratione soluta velit natus, odit mollitia. Corporis rerum minima fugiat in nostrum. Assumenda natus 86 | cupiditate hic quidem ex, quas, amet ipsum esse dolore facilis beatae maxime qui inventore, iste? Maiores 87 | dignissimos dolore culpa debitis voluptatem harum, excepturi enim reiciendis, tempora ab ipsam illum aspernatur 88 | quasi qui porro saepe iure sunt eligendi tenetur quaerat ducimus quas sequi omnis aperiam suscipit! Molestiae 89 | obcaecati officiis quo, ratione eveniet, provident pariatur. Veniam quasi expedita distinctio, itaque molestiae 90 | sequi, dolorum nisi repellendus quia facilis iusto dignissimos nam? Tenetur fugit quos autem nihil, perspiciatis 91 | expedita enim tempore, alias ab maiores quis necessitatibus distinctio molestias eum, quidem. Delectus impedit 92 | quidem laborum, fugit vel neque quo, ipsam, quasi aspernatur quas odio nihil? Veniam amet reiciendis blanditiis 93 | quis reprehenderit repudiandae neque, ab ducimus, odit excepturi voluptate saepe ipsam. Voluptatem eum error 94 | voluptas porro officiis, amet! Molestias, fugit, ut! Tempore non magnam, amet, facere ducimus accusantium eos 95 | veritatis neque.
96 | 97 |Lorem ipsum dolor sit amet, consectetur adipisicing elit. Distinctio maiores adipisci quibusdam repudiandae dolor 100 | vero placeat esse sit! Quibusdam saepe aperiam explicabo placeat optio, consequuntur nihil voluptatibus expedita 101 | quia vero perferendis, deserunt et incidunt eveniet temporibus doloremque possimus facilis. Possimus labore, 102 | officia dolore! Eaque ratione saepe, alias harum laboriosam deserunt laudantium blanditiis eum explicabo placeat 103 | reiciendis labore iste sint. Consectetur expedita dignissimos, non quos distinctio, eos rerum facilis eligendi. 104 | Asperiores laudantium, rerum ratione consequatur, culpa consectetur possimus atque ab tempore illum non dolor 105 | nesciunt. Neque, rerum. A vel non incidunt, quod doloremque dignissimos necessitatibus aliquid laboriosam 106 | architecto at cupiditate commodi expedita in, quae blanditiis. Deserunt labore sequi, repellat laboriosam est, 107 | doloremque culpa reiciendis tempore excepturi. Enim nostrum fugit itaque vel corporis ullam sed tenetur ipsa qui 108 | rem quam error sint, libero. Laboriosam rem, ratione. Autem blanditiis laborum neque repudiandae quam, cumque, 109 | voluptate veritatis itaque, placeat veniam ad nisi. Expedita, laborum reprehenderit ratione soluta velit natus, 110 | odit mollitia. Corporis rerum minima fugiat in nostrum. Assumenda natus cupiditate hic quidem ex, quas, amet ipsum 111 | esse dolore facilis beatae maxime qui inventore, iste? Maiores dignissimos dolore culpa debitis voluptatem harum, 112 | excepturi enim reiciendis, tempora ab ipsam illum aspernatur quasi qui porro saepe iure sunt eligendi tenetur 113 | quaerat ducimus quas sequi omnis aperiam suscipit! Molestiae obcaecati officiis quo, ratione eveniet, provident 114 | pariatur. Veniam quasi expedita distinctio, itaque molestiae sequi, dolorum nisi repellendus quia facilis iusto 115 | dignissimos nam? Tenetur fugit quos autem nihil, perspiciatis expedita enim tempore, alias ab maiores quis 116 | necessitatibus distinctio molestias eum, quidem. Delectus impedit quidem laborum, fugit vel neque quo, ipsam, 117 | quasi aspernatur quas odio nihil? Veniam amet reiciendis blanditiis quis reprehenderit repudiandae neque, ab 118 | ducimus, odit excepturi voluptate saepe ipsam. Voluptatem eum error voluptas porro officiis, amet! Molestias, 119 | fugit, ut! Tempore non magnam, amet, facere ducimus accusantium eos veritatis neque.
120 |Lorem ipsum dolor sit amet, consectetur adipisicing elit. Distinctio maiores adipisci quibusdam repudiandae dolor 121 | vero placeat esse sit! Quibusdam saepe aperiam explicabo placeat optio, consequuntur nihil voluptatibus expedita 122 | quia vero perferendis, deserunt et incidunt eveniet temporibus doloremque possimus facilis. Possimus labore, 123 | officia dolore! Eaque ratione saepe, alias harum laboriosam deserunt laudantium blanditiis eum explicabo placeat 124 | reiciendis labore iste sint. Consectetur expedita dignissimos, non quos distinctio, eos rerum facilis eligendi. 125 | Asperiores laudantium, rerum ratione consequatur, culpa consectetur possimus atque ab tempore illum non dolor 126 | nesciunt. Neque, rerum. A vel non incidunt, quod doloremque dignissimos necessitatibus aliquid laboriosam 127 | architecto at cupiditate commodi expedita in, quae blanditiis. Deserunt labore sequi, repellat laboriosam est, 128 | doloremque culpa reiciendis tempore excepturi. Enim nostrum fugit itaque vel corporis ullam sed tenetur ipsa qui 129 | rem quam error sint, libero. Laboriosam rem, ratione. Autem blanditiis laborum neque repudiandae quam, cumque, 130 | voluptate veritatis itaque, placeat veniam ad nisi. Expedita, laborum reprehenderit ratione soluta velit natus, 131 | odit mollitia. Corporis rerum minima fugiat in nostrum. Assumenda natus cupiditate hic quidem ex, quas, amet ipsum 132 | esse dolore facilis beatae maxime qui inventore, iste? Maiores dignissimos dolore culpa debitis voluptatem harum, 133 | excepturi enim reiciendis, tempora ab ipsam illum aspernatur quasi qui porro saepe iure sunt eligendi tenetur 134 | quaerat ducimus quas sequi omnis aperiam suscipit! Molestiae obcaecati officiis quo, ratione eveniet, provident 135 | pariatur. Veniam quasi expedita distinctio, itaque molestiae sequi, dolorum nisi repellendus quia facilis iusto 136 | dignissimos nam? Tenetur fugit quos autem nihil, perspiciatis expedita enim tempore, alias ab maiores quis 137 | necessitatibus distinctio molestias eum, quidem. Delectus impedit quidem laborum, fugit vel neque quo, ipsam, 138 | quasi aspernatur quas odio nihil? Veniam amet reiciendis blanditiis quis reprehenderit repudiandae neque, ab 139 | ducimus, odit excepturi voluptate saepe ipsam. Voluptatem eum error voluptas porro officiis, amet! Molestias, 140 | fugit, ut! Tempore non magnam, amet, facere ducimus accusantium eos veritatis neque.
141 | 142 | 143 | 144 |12
17 |3
18 |6
19 |9
20 |Psst: have a look at the JavaScript Console 💁
24 |Filter the list of inventors for those who were born in the 1500's
31 |Give us an array of the inventors first and last names
40 |Sort the inventors by birthdate, oldest to youngest
49 |How many years did all the inventors live all together?
60 |Hey
96 |Let's
97 |Dance
98 |Give
101 |Take
102 |Receive
103 |Experience
106 |It
107 |Today
108 |Give
111 |All
112 |You can
113 |Life
116 |In
117 |Motion
118 |Psst: have a look at the JavaScript Console 💁
25 |Find is like filter, but instead returns just the one you are looking for
39 | find the comment with the ID of 823423 40 |Text :
41 |ID :
42 |Find the comment with this ID
46 | delete the comment with the ID of 823423 47 |Draw Below!
22 | 23 | 72 | 73 | 74 | 75 | 76 | -------------------------------------------------------------------------------- /team/Steven/Day1 - Drum Kit/README.md: -------------------------------------------------------------------------------- 1 | # Target 2 | 按下畫面上對應的按鈕,演出音效和按鈕的特效。 3 | 4 | ## 重點整理 5 | 1. 監聽整個網頁發生的按鍵按下的事件 (keydown),同時綁定執行一個 function `playSound()` 6 | ```js 7 | window.addEventListener('keydown', playSound); 8 | ``` 9 | ## 補充 10 | 11 | - `keydown`, `keypress` and `keyup` 12 | - keydown: 任何按鍵都能觸發。This event occurs when a keyboard key is pressed. 13 | `$(selector).keydown(function)` // Attaches a function to the key down event 14 | - keydown: Triggered by any key. 15 | - keypress: This event is similar to keydown event. 16 | - keypress: 一些沒有輸出字元的按鍵無法觸發,例如方向鍵和 `ESC`。 17 | - keyup: This event occurs when a keyboard key is released. 18 | 19 | - audio tag 的屬性和用法: 20 | - currentTime: Sets or returns the current playback position in the audio/video (in seconds). 21 | - play(): To play the audio. - autoplay: Auto play the audio when loading finish. - controls: Sets or returns whether the audio/video should dispay controls (play, pause etc.) - loop: Sets or returns whether the audio/video should start over again when finished. 22 | - volume: Sets or returns the volume of the audio/video. 23 | - Stop playing: 24 | ```js 25 | let sound = new Audio("bell.wav"); 26 | 27 | function myStop() { 28 | sound.pause(); 29 | sound.currentTime = 0; 30 | } 31 | 32 | - NodeList: 33 | `document.querySelectorAll()` returns a `NodeList` object, this is a collection of nodes. 34 | - Its is possible to iterate over it with `forEach()`. 35 | - Dome older browsers have not implemented `NoodeList.forEach()` nor `Array.from()`, This can be circumented by using `Array.prototype.forEach()`. [See this Example fomr MDN](https://developer.mozilla.org/en-US/docs/Web/API/NodeList#Example). 36 | 37 | ```js 38 | const keys = document.querySelectorAll('.key'); 39 | Array.prototype.forEach.call(keys, key => key.addEventListener('transitionend', removeTransition)); 40 | ``` 41 | 42 | ## References 43 | - [MDN](https://developer.mozilla.org/en-US/docs/Web/API/NodeList) 44 | - [w3schools.com](https://www.w3schools.com/tags/ref_av_dom.asp) 45 | - [keycode.info](http://keycode.info/) - shows keyCode 46 | -------------------------------------------------------------------------------- /team/Steven/Day1 - Drum Kit/index-Steven.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 |This is an inbox layout.
63 |Check one item
67 |Hold down your Shift key
71 |Check a lower item
75 |Everything in between should also be set to checked
79 |Try to do it without any libraries
83 |Just regular JavaScript
87 |Good Luck!
91 |Don't forget to tweet your result!
95 |Psst: have a look at the JavaScript Console 💁
9 | 105 | 106 | 107 | -------------------------------------------------------------------------------- /team/Steven/Day5 - Flex Panel Gallery/README.md: -------------------------------------------------------------------------------- 1 | # Target 2 | Make animation effect by CSS and JavaScript. 3 | Using: 4 | - CSS flex, transform, transition. 5 | - JavaScript events and class toggle. 6 | 7 | ## Key points 8 | - The propertyName called just "flex" in Safari rather than "flex-grow" in other browsers, so here using `propertyName.includes('flex')` to get compatibility. 9 | - Listen to 'transitionend' event to get the property which has changed. 10 | 11 | ```js 12 | const panels = document.querySelectorAll('.panel'); 13 | 14 | function toggleActive(e) { 15 | console.log(e.propertyName); 16 | if (e.propertyName.includes('flex')) { 17 | this.classList.toggle('open-active'); 18 | } 19 | } 20 | 21 | panel.forEach(panel => panel.addEventListener('transitionend', toggleActive)); 22 | ``` 23 | 24 | - 3 ways to turn NodeList into an array 25 | ```js 26 | let panels = document.querySelectorAll('.panel'); 27 | 28 | let arr1 = [...panels]; 29 | let arr2 = Array.from(panels); 30 | let arr3 = [].slice.call(panels); // [].slice === Array.prototype.slice; 31 | ``` 32 | 33 | ## Reference 34 | - [flex.io](https://flexbox.io/): A simple, free 20 video course. 35 | -------------------------------------------------------------------------------- /team/Steven/Day5 - Flex Panel Gallery/index-Steven.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 |Hey
126 |Let's
127 |Dance
128 |Give
131 |Take
132 |Receive
133 |Experience
136 |It
137 |Today
138 |Give
141 |All
142 |You can
143 |Life
146 |In
147 |Motion
148 |
13 | Or your browser does not support
14 |
15 | Get Firefox
16 |
17 | Get Chrome
18 |