作品網址:


 


主題目標


  • 要對照 Console 才能觀看,主要是偵測輸入按鍵,一開始設定一組密碼,例如: wesbos ,當輸入的內容符合到 wesbos 就顯示提示。
  • 初始文檔裡僅僅提供了一個script標籤,供我們從Cornify.com加載一個JS文件,調用其中的cornify_add()方法時,會在頁面中追加p標籤,並在DOM中插入一個圖標。Cornify的具體效果可以到官網首頁去體驗。

 


需求思考分析


  1. 指定可激發特效的字符串
  2. 監聽並獲取輸入的字符
  3. 處理輸入,在符合條件時,調用cornify

 


處理步驟


步驟1

聲明一個空數組,用於存放的輸入字符,同時聲明“暗號”

步驟2

  • 添加鍵盤的keyup事件監聽,用箭頭函數的參數來接收事件。
  • 注意此處的keyup事件是針對頁面的,所以在調試時單擊頁面後時焦點在頁面中才生效,在Console面板中是不會觸發的。

步驟3

  • 驗證輸入的字符。
  • 此處方法是將每一個輸入的字符存入pressed數組,然後處理數組,使其呈現隊列的性質,也就是輸入一個字符時,會擠出原有的的字符,保證其最大長度始終為secretCode的長度。
  • 這樣做的目的是為了便於驗證暗號,只有完整無誤的輸入一次暗號時,才會觸發相應的效果。當然這只是其中一種處理辦法,也還有其他辦法。

特別技術、函式


<HTML>

<CSS>

<JavaScript>

Array.prototype.splice()

splice() 方法可以藉由刪除既有元素並/或加入新元素來改變一個陣列的內容。

const months = ['Jan', 'March', 'April', 'June'];
months.splice(1, 0, 'Feb');
// inserts at index 1
console.log(months);
// expected output: Array ["Jan", "Feb", "March", "April", "June"]
months.splice(4, 1, 'May');
// replaces 1 element at index 4
console.log(months);
// expected output: Array ["Jan", "Feb", "March", "April", "May"]

Array.prototype.shift()

shift() 方法會移除並回傳陣列的第一個元素。此方法會改變陣列的長度。

const array1 = [1, 2, 3];
const firstElement = array1.shift();
console.log(array1);
// expected output: Array [2, 3]
console.log(firstElement);
// expected output: 1

Array.prototype.join()

join() 方法會將陣列(或一個類陣列(array-like)物件)中所有的元素連接、合併成一個字串,並回傳此字串。

const elements = ['Fire', 'Air', 'Water'];
console.log(elements.join());
// expected output: "Fire,Air,Water"
console.log(elements.join(''));
// expected output: "FireAirWater"
console.log(elements.join('-'));
// expected output: "Fire-Air-Water"

參考資料:


JS30紀錄 12-Key Sequence Detection: https://shunnien.github.io/2017/12/30/Javascript30days-12/

Js 30 day 中文指南:https://github.com/soyaine/JavaScript30

Steven玄

謝謝您觀看本站內容!! 😅 西元93年台灣男,軟體前、後、資料庫工程師 和 多元收入實踐,程式設計、網站系統規劃、商業策略分析規劃、多元收入研究,目前在網站開發公司擔任工程師。

發佈留言