โฮมเพจ » การเข้ารหัส » วิธีสร้างปฏิทินแบบง่ายใน JavaScript

    วิธีสร้างปฏิทินแบบง่ายใน JavaScript

    แอดเวนต์คือช่วงเวลาของการรอและเตรียมพร้อมสำหรับคริสต์มาสซึ่งเริ่มต้นสี่วันอาทิตย์ก่อนวันคริสต์มาส เวลาที่ผ่านไปของการจุติถูกวัดตามธรรมเนียมด้วยความช่วยเหลือของ Advent Calendar หรือ Advent Wreath แม้ว่าการเริ่มต้นของการจุติจะไม่ใช่วันที่ที่กำหนด แต่ปฏิทินจุติมักจะเริ่มต้นในวันที่ 1 ธันวาคม.

    ตามปฏิทินของท้องถิ่นปฏิทินจุติอาจมีรูปแบบที่แตกต่างกันไป แต่ส่วนใหญ่จะอยู่ในรูปแบบของ การ์ดสี่เหลี่ยมขนาดใหญ่ที่มี 24 หน้าต่างหรือประตู ทำเครื่องหมายวันระหว่าง 1 ธันวาคมถึง 24 ประตูปิดบังข้อความบทกวีคำอธิษฐานหรือความประหลาดใจเล็กน้อย.

    ในโพสต์นี้ฉันจะแสดงวิธีการ ทำปฏิทินจุติใน JavaScript เชิงวัตถุ. เนื่องจากมันถูกสร้างขึ้นใน vanilla JavaScript คุณสามารถวางรหัสลงในเว็บไซต์ของคุณเอง.

    • การสาธิต
    • แหล่งดาวน์โหลด

    การออกแบบปฏิทิน JavaScript

    ปฏิทินจุติของเราจะมี 24 ประตูบนภาพพื้นหลังธีมคริสต์มาส แต่ละประตูจะซ่อนคำพูดที่เกี่ยวข้องกับคริสมาสต์ที่จะ ปรากฏขึ้นในรูปแบบของข้อความแจ้งเตือนเมื่อผู้ใช้คลิกที่ประตู. ประตูยังคงปิดให้บริการจนกว่าจะถึงวันที่กำหนดเนื่องจากเป็นกรณีที่มีปฏิทินจุติชีวิตจริง ประตูไม่สามารถเปิดได้ก่อนถึงวันที่เหมาะสม.

    ประตูที่เปิดใช้งานแล้วจะมีเส้นขอบและสีพื้นหลัง (สีขาว) ที่แตกต่างจากสีที่ปิดใช้งาน (สีเขียวอ่อน) เราจะใช้ HTML5, CSS3 และ JavaScript เพื่อเตรียม Advent Calendar ของเราที่มีลักษณะดังนี้:

    ขั้นตอนที่ 1 - สร้างโครงสร้างไฟล์ & ทรัพยากร

    ก่อนอื่นเราต้องเลือกภาพพื้นหลังที่สวยงาม ฉันเลือกอันที่มีการวางแนวแนวตั้งจาก Pixabay ดังนั้นปฏิทินของฉันจะมี 4 คอลัมน์และ 6 แถว.

    มันก็โอเคถ้าคุณชอบแนวนอน เพียงเปลี่ยนตำแหน่งของประตูในรหัส JavaScript ตามที่คุณมี 6 คอลัมน์และ 4 แถว. หากคุณมีภาพของคุณสร้างโฟลเดอร์ที่เรียกว่า / ภาพ, และบันทึก.

    นี่จะเป็นทรัพยากรรูปภาพของเราสำหรับโครงการนี้.

    สำหรับไฟล์ JavaScript ให้สร้าง / สคริปต์ โฟลเดอร์ภายในโฟลเดอร์รูทของคุณ วางไฟล์ข้อความเปล่าสองไฟล์ลงไปแล้วตั้งชื่อไฟล์ calendar.js และ messages.js. Calendar.js จะหยุดการทำงานในขณะที่ messages.js จะมีอาเรย์ของข้อความที่ปรากฏขึ้นเมื่อผู้ใช้ “เปิด” (คลิกที่) ประตู.

    นอกจากนี้เรายังต้องการไฟล์ HTML และ CSS ดังนั้นสร้างไฟล์ว่างสองไฟล์ในโฟลเดอร์รูทของคุณและตั้งชื่อให้พวกเขา index.html และ style.css.

    เมื่อคุณพร้อมคุณมีทรัพยากรและโครงสร้างไฟล์คุณจะต้องทำให้โครงการนี้สำเร็จและโฟลเดอร์รูทของคุณจะมีลักษณะดังนี้:

    ขั้นตอนที่ 2 - สร้าง HTML

    รหัส HTML ที่เราใช้นั้นค่อนข้างตรงไปตรงมา สไตล์ชีท CSS มีการเชื่อมโยงใน ในขณะที่ ไฟล์ JavaScript สองไฟล์รวมอยู่ที่ด้านล่างของ มาตรา. สิ่งหลังมีความจำเป็นเพราะถ้าเราใส่สคริปต์เข้าไปใน ส่วนรหัสจะไม่ถูกดำเนินการตามที่มัน ใช้องค์ประกอบของหน้า HTML ที่โหลด.

    ปฏิทินจุตินั้นถูกวางไว้ภายใน

    แท็กความหมาย เราโหลดอิมเมจคริสต์มาสเป็น องค์ประกอบ HTML และไม่ใช่คุณสมบัติพื้นหลัง CSS เนื่องจากวิธีนี้เราสามารถเข้าถึงได้อย่างง่ายดายเป็นองค์ประกอบของ DOM.

    ด้านล่างของภาพเราวางรายการที่ไม่มีการเรียงลำดับที่ว่างเปล่าด้วย “adventDoors” id selector ที่จะถูกบรรจุโดยสคริปต์ หากผู้ใช้ไม่ได้เปิดใช้งาน JavaScript ในเบราว์เซอร์ของพวกเขาพวกเขาก็จะเห็นภาพคริสต์มาสง่ายๆ.

         ปฏิทินจุติ       

    ปฏิทินจุติ

      ขั้นตอนที่ 3 - เติม “ข้อความ” แถว

      เราต้องการใบเสนอราคาคริสต์มาส 24 ใบเพื่อเติมเต็ม “ข้อความ” แถว ฉันเลือกของฉันจาก GoodReads.

      เปิด สคริปต์ / messages.js ไฟล์; เราจะใส่เครื่องหมายคำพูดไว้ที่นี่เพื่อให้แยกจากการทำงาน ข้อความ อาเรย์เป็นอาร์เรย์ภายในอาเรย์แต่ละองค์ประกอบของอาเรย์ด้านนอกจะมีอาเรย์อีกอันที่มีสองอิลิเมนต์: อัญประกาศและผู้แต่ง.

      เติมอาร์เรย์ด้วยคำพูดที่คุณชื่นชอบตามไวยากรณ์ต่อไปนี้:

       ข้อความ var = [["ใบเสนอราคา 1", "ผู้แต่ง 1"], ["ใบเสนอราคา 2", "ผู้แต่ง 2"], ... ["ใบเสนอราคา 24", "ผู้แต่ง 24"]];

      ขั้นตอนที่ 4 - เพิ่มสไตล์ CSS พื้นฐานสำหรับประตู

      ในการสร้างสไตล์ CSS ที่จำเป็นสำหรับประตูเราจำเป็นต้องจินตนาการถึงการออกแบบขั้นสุดท้ายเนื่องจากตัวประตูจะถูกสร้างขึ้นด้วย JavaScript ในขั้นตอนต่อไปนี้.

      เราจำเป็นต้องสร้าง 4 คอลัมน์และ 6 แถวของสี่เหลี่ยมในการจัดตำแหน่งที่เหมาะสม สำหรับสิ่งนี้เราจะใช้ ตำแหน่ง: ญาติ และ ตำแหน่ง: แน่นอน กฎ CSS เนื่องจากตำแหน่งที่แน่นอนจะเปลี่ยนประตูเราจะเพิ่ม ด้านบน, ด้านล่าง, ซ้าย, และ ขวา คุณสมบัติใน JavaScript ใน CSS เราเพียงแค่ต้องเพิ่มตำแหน่งสัมพัทธ์ในคอนเทนเนอร์ (รายการที่ไม่ได้เรียงใน HTML) และตำแหน่งที่แน่นอนสำหรับองค์ประกอบรายการ.

      สิ่งสำคัญอื่น ๆ ในไฟล์สไตล์ชีทคือ สร้างการออกแบบที่แตกต่างกันสำหรับคนพิการและสถานะที่เปิดใช้งาน. .พิการ ตัวเลือกจะถูกเพิ่มไปยัง JavaScript โดยปิดการใช้งาน.

      สำหรับปฏิทินตัวอย่างของฉันฉันตั้งค่าเส้นขอบสีขาวทึบและสีขาวแบบอักษรสำหรับประตูที่เปิดใช้งานที่มีพื้นหลังสีขาวโปร่งใสในการวางเมาส์ไว้ และเส้นขอบสีเขียวอ่อนและแบบอักษรและพื้นหลังสีเขียวอ่อนสำหรับคนพิการ หากคุณไม่ชอบดีไซน์นี้คุณสามารถเปลี่ยนสีและสไตล์ตามความต้องการของคุณ.

      วางรหัสต่อไปนี้ (หรือกฎสไตล์ของคุณ) ลงในของคุณ style.css ไฟล์.

       ul # AdventDoors ตำแหน่ง: ญาติ; รายการสไตล์: ไม่มี; การเติมเต็ม: 0; กำไรขั้นต้น: 0;  #adventDoors li position: absolute;  #adventDoors li a color: #fff; ความกว้าง: 100%; ความสูง: 100%; ขนาดตัวอักษร: 24px; จัดข้อความ: ศูนย์; แสดงผล: ดิ้น; ดิ้นทิศทาง: คอลัมน์; ปรับเนื้อหา: ศูนย์; การตกแต่งข้อความ: ไม่มี; เส้นขอบ: 1px #fff solid;  #adventDoors li a: not (.disabled): โฮเวอร์ color: #fff; สีพื้นหลัง: โปร่งใส สีพื้นหลัง: rgba (255,255,255,0.15);  #adventDoors li a.disabled border-color: # b6fe98; สีพื้นหลัง: rgba (196,254,171,0.15); สี: # b6fe98; เคอร์เซอร์: เริ่มต้น; 

      ขั้นตอนที่ 5 - สร้างตัวแปรทั่วโลก

      จากขั้นตอนนี้ไปเราจะทำงานกับ สคริปต์ / calendar.js ไฟล์ดังนั้นตอนนี้เรามาเปิดขึ้น ปฏิทินจุติของเราจะใช้ตัวแปรระดับโลกสองตัว.

      myCal ตัวแปรเก็บภาพปฏิทินเป็นวัตถุ JS เพิ่มรูปภาพแล้วใน index.html ไฟล์ในขั้นตอนที่ 2 เราจะวางประตูบนภาพนี้ในขั้นตอนที่ 7 เราจับ HTML ที่เกี่ยวข้อง องค์ประกอบที่มีเครื่องหมาย “adventCal” identifier โดยใช้เมธอด getElementById () myCal ตัวแปรจะเป็นวัตถุ DOM ของ HTMLImageElement.

      วันที่ปัจจุบัน ตัวแปรถือวันที่ปัจจุบันเพื่อให้สคริปต์ของเราสามารถตัดสินใจได้ง่ายว่าควรเปิดใช้งานหรือปิดการใช้งานประตูหรือไม่ เพื่อสร้าง วันที่ปัจจุบัน เรายกตัวอย่างวัตถุใหม่ของคลาส Date JavaScript.

      วางข้อมูลโค้ดต่อไปนี้ไว้ด้านบนของคุณ calendar.js ไฟล์.

       var myCal = document.getElementById ("AdventCal"); var currentDate = new Date ();

      ขั้นตอนที่ 6 - สร้าง “ประตู” ชั้น

      เนื่องจากเราต้องการประตู 24 บานวิธีที่ตรงไปตรงมาที่สุดในการสร้างคือ “ประตู” ชั้นเรียนและต่อมายกตัวอย่างมัน 24 ครั้ง.

      คลาส Door ของเรามีสองพารามิเตอร์, ปฏิทิน และ วัน. สำหรับทาง ปฏิทิน พารามิเตอร์ที่เราจะต้องผ่านภาพคริสต์มาสที่จะทำหน้าที่เป็นพื้นหลัง สำหรับทาง วัน พารามิเตอร์เราจะต้องผ่านวันที่ปัจจุบันของเดือนธันวาคมในรูปแบบของจำนวนเต็ม.

      เราจะส่งค่าที่แน่นอนของพารามิเตอร์ในขั้นตอนสุดท้าย (ขั้นตอนที่ 8) ในระหว่างการสร้างอินสแตนซ์ของวัตถุ 24 ประตู.

      เราจะสร้าง 5 คุณสมบัติและ 1 วิธีสำหรับคลาส Door ในขั้นตอนนี้เราจะผ่าน 5 คุณสมบัติเท่านั้นและฉันจะอธิบาย เนื้อหา() วิธีการในขั้นตอนต่อไป.

      “ความกว้าง” & “ความสูง” คุณสมบัติ

      ความกว้าง และ ความสูง คุณสมบัติคำนวณความกว้างและความสูงของประตูแต่ละบานแบบไดนามิก (เปลี่ยนแปลงตามความกว้างและความสูงของภาพพื้นหลัง).

      ตัวคูณ 0.1 และ 0.95 อยู่ในสมการเพื่อเว้นช่องว่างสำหรับระยะขอบระหว่างแต่ละประตูและรอบ ๆ ด้านข้างของปฏิทินเช่นกัน.

      “adventMessage” คุณสมบัติ

      adventMessage พร็อพเพอร์ตี้เก็บเนื้อหาของข้อความแจ้งเตือนคือราคาและผู้เขียนที่ตรงกันที่เรา messages.js ถือไฟล์ adventMessage สถานที่ให้บริการจะอ้างและผู้เขียนจาก ข้อความ [] อาร์เรย์ขึ้นอยู่กับวันที่ปัจจุบัน.

      สำหรับวันที่ 1 ธันวาคม adventMessage คุณสมบัติใช้องค์ประกอบแรกของอาร์เรย์ด้านนอกซึ่งก็คือ ข้อความ [0], ในฐานะที่เป็นอาร์เรย์เป็นศูนย์ใน JavaScript.

      ด้วยเหตุผลเดียวกันการเสนอราคาสำหรับวันที่ 1 ธันวาคมอยู่ในตำแหน่ง ข้อความ [0] [0] (องค์ประกอบแรกของอาร์เรย์ภายใน) และผู้เขียนที่ตรงกันสามารถเข้าถึงได้เป็น ข้อความ [0] [1] (องค์ประกอบที่สองของอาร์เรย์ภายใน).

      “x”&”Y” คุณสมบัติ

      คุณสมบัติ x และ Y ดำรงตำแหน่งที่เหมาะสมของแต่ละประตูที่เราจะใช้ในขั้นตอนถัดไปเพื่อตั้งค่า ด้านบน และ ซ้าย คุณสมบัติ CSS สิ่งเหล่านี้จะเสริม ตำแหน่ง: ญาติ และ ตำแหน่ง: แน่นอน กฎ CSS ที่เรากำหนดไว้ในขั้นตอนที่ 4 สำหรับที่เก็บประตู (ul # AdventDoors) และประตูตัวเอง (#adventDoors li) การคำนวณอาจดูค่อนข้างน่ากลัว แต่เรามาดูกันอย่างรวดเร็ว.

      x คุณสมบัติจะถูกใช้โดย ซ้าย คุณสมบัติการวางตำแหน่ง CSS ในขั้นตอนถัดไป (ขั้นตอนที่ 7) มันกำหนดเป็นพิกเซลซึ่งต้องวางแต่ละประตูบนแกน x.

      ใช้ความกว้างของภาพพื้นหลังและทำให้ระยะห่างเล็กน้อยสำหรับมัน (4%) จากนั้นด้วยความช่วยเหลือของผู้ปฏิบัติงานที่เหลือจะประเมินว่าจะวางคอลัมน์ใด (โปรดจำไว้ว่าจะมี 4 คอลัมน์) และในที่สุดก็เพิ่มระยะขอบเล็กน้อย (10%) ให้กับแต่ละประตูโดยใช้ตัวคูณ 1.1.

      ในทำนองเดียวกัน Y คุณสมบัติจะถูกใช้โดย ด้านบน คุณสมบัติการวางตำแหน่ง CSS และในทำนองเดียวกันจะกำหนดเป็นพิกเซลซึ่งจะต้องวางแต่ละประตูบนแกน y.

      เราใช้ความสูงของภาพพื้นหลังด้วยความช่วยเหลือของคุณสมบัติความสูงของที่ผ่านมา ปฏิทิน พารามิเตอร์ (ที่เก็บวัตถุ DOM) และเว้นระยะไว้ 4% รอบ ๆ แนวดิ่งของปฏิทิน.

      จากนั้นด้วยความช่วยเหลือของวิธีการ Math.floor () เราจะคำนวณว่าแถวใดที่วัตถุประตูที่กำหนดจะเป็น (จะมี 6 แถว).

      ในที่สุดเราก็เพิ่มมาร์จิ้น 10% สำหรับแต่ละวัตถุของประตูโดยการเพิ่มความสูงโดยใช้ตัวคูณ 1.1.

       ฟังก์ชั่นประตู (ปฏิทิน, วัน) this.width = ((calendar.width - 0.1 * calendar.width) / 4) * 0.95; this.height = ((calendar.height - 0.1 * calendar.height) / 6) * 0.95; this.adventMessage = 'วัน' + วัน + 'จุติ \ n \ n' + '"+ ข้อความ [วัน - 1] [0] +'" \ n \ n \ t '+' โดย '+ ข้อความ [วัน - 1] [1] + '\ n \ n'; this.x = (0.04 * calendar.width + ((วัน - 1)% 4) * (1.1 * this.width)); this.y = - (0.96 * calendar.height - Math.floor ((วัน - 1) / 4) * (1.1 * this.height)); this.content = function () …; 

      ขั้นตอนที่ 7 - เติม “เนื้อหา()” วิธี

      มันคือ เนื้อหา() วิธีการที่จะแสดงประตูของเราในเบราว์เซอร์ ก่อนอื่นเราสร้างโหนด DOM ใหม่ด้วยความช่วยเหลือของตัวแปร ปม ที่จะสร้าง

    • องค์ประกอบภายในรายการที่ไม่มีการเรียงลำดับที่ว่างเปล่าในปัจจุบัน (ul # AdventDoors) ในไฟล์ HTML.

      เนื่องจากคลาส Door จะถูกสร้างอินสแตนซ์ 24 ครั้งใน for for loop ในขั้นตอนถัดไป (ขั้นตอนที่ 8) ซึ่งหมายความว่าเราจะมี 24

    • องค์ประกอบหนึ่ง li สำหรับแต่ละประตู ในบรรทัดถัดไปเราผนวกโหนดใหม่เข้ากับ #adventDoors รายการที่ไม่เรียงลำดับเป็นองค์ประกอบลูกโดยใช้วิธี appendChild () DOM.

      คุณสมบัติ node.id ในบรรทัดถัดไปเพิ่มตัวเลือก id ที่ไม่ซ้ำกันให้กับแต่ละองค์ประกอบรายการ (ประตู) เราจะต้องใช้สิ่งนี้เพื่อให้สามารถวนซ้ำวันในขั้นตอนถัดไปได้อย่างถูกต้อง (ขั้นตอนที่ 8) วิธีนี้ประตู 1 จะมี id =”door1", ประตู 2 จะมี id =”door2" ตัวเลือก ฯลฯ.

      คุณสมบัติ node.style.cssText ในบรรทัดถัดไปเพิ่มกฎ CSS บางอย่างให้กับองค์ประกอบรายการแต่ละรายการ (ประตู) ด้วยความช่วยเหลือของ style =”... ” คุณลักษณะ HTML ที่ใช้ในการรวม CSS แบบอินไลน์ในไฟล์ HTML node.style.cssText property ใช้คุณสมบัติของคลาส Door ที่เราตั้งไว้ในขั้นตอนก่อนหน้า (ขั้นตอนที่ 6).

      ในการทำให้วัตถุของเราคลิกได้เราจำเป็นต้องเพิ่ม แท็กภายในองค์ประกอบรายการ เราบรรลุสิ่งนี้ด้วยความช่วยเหลือของ innerNode ตัวแปรที่เราผูกเป็นองค์ประกอบลูกกับองค์ประกอบรายการที่เหมาะสมที่ระบุโดย id =”ประตู [ผม]” selector (ด้วย [i] เป็นหมายเลขวัน) โดยใช้ appendChild () วิธี DOM เหมือนเมื่อก่อน.

      คุณสมบัติ innerHTML ในบรรทัดถัดไปแสดงวันปัจจุบัน (1-24) ที่ด้านบนสุดของประตูในเบราว์เซอร์และเรายังเพิ่ม href =”#” แอตทริบิวต์กับแท็กสมอของเราโดยใช้คุณสมบัติ href DOM.

      ในที่สุดในคำสั่ง if-else เราประเมินว่าควรเปิดใช้งานหรือปิดใช้งานวัตถุประตูหรือไม่ อันดับแรกเราตรวจสอบว่าเราอยู่ในเดือนที่ 12 ของปี (ธันวาคม) โดยใช้วิธี getMonth () ของวัตถุ Date เราจำเป็นต้องเพิ่ม 1 เนื่องจาก getMonth () เป็นศูนย์ (มกราคมคือเดือน 0 เป็นต้น).

      หลังจากนี้เราจะตรวจสอบว่าวันที่ปัจจุบันที่ถืออยู่ใน วันที่ปัจจุบัน ตัวแปรทั่วโลกที่เราตั้งไว้ในขั้นตอนที่ 5 น้อยกว่า วัน วัตถุในปัจจุบันหมายถึง.

      หากไม่ใช่ธันวาคมหรือวันที่แสดงโดยประตูที่กำหนดมีขนาดใหญ่กว่าวันที่ปัจจุบันประตูควรถูกปิดใช้งานในกรณีอื่น ๆ ที่จำเป็นต้องเปิดใช้งานเพื่อให้ผู้ใช้สามารถคลิกที่ประตูและดูข้อความ Advent ที่เกี่ยวข้อง.

      หากปิดการใช้งานประตูเราจะเพิ่ม class =”พิการ” เลือกไปยังแท็ก anchor ที่กำหนดด้วยความช่วยเหลือของคุณสมบัติ className โปรดจำไว้ว่าเราได้จัดสไตล์ .พิการ คลาสที่มี CSS ในขั้นตอนที่ 4 นอกจากนี้เรายังต้องตั้งค่าคุณลักษณะเหตุการณ์ onclick HTML เพื่อส่งคืนค่าเท็จ.

      หากประตูอยู่ในสถานะเปิดใช้งานเราจะเพิ่ม adventMessage คุณสมบัติไปยังข้อความแจ้งเตือนและวางไว้ภายในแอตทริบิวต์เหตุการณ์ onclick HTML.

       this.content = function () var node = document.createElement ("li"); document.getElementById ( "adventDoors") appendChild (โหนด). node.id = "ประตู" + วัน; node.style.cssText = "width:" + this.width + "px; height:" + this.height + "px; top:" + this.y + "px ซ้าย:" + this.x + "px ; "; var innerNode = document.createElement ("a"); document.getElementById ("ประตู" + วัน). appendChild (innerNode); innerNode.innerHTML = วัน; innerNode.href = "#"; if ((currentDate.getMonth () + 1) < 12 || currentDate.getDate() < day )  innerNode.className = "disabled"; innerNode.onclick = function()  return false;   else  var adventMessage = this.adventMessage; innerNode.onclick = function()  alert(adventMessage); return false;   ;

      ขั้นตอนที่ 8 - เริ่มต้น “ประตู” วัตถุ

      ในที่สุดเราต้องเริ่มต้นคลาสของประตู 24 ครั้ง.

      ในการทำเช่นนั้นเราใช้การแสดงออกของฟังก์ชันที่เรียกใช้ทันทีซึ่งค่อนข้างมีประโยชน์ที่นี่เพราะเราไม่ต้องการตัวแปรเนื่องจากเราต้องการเรียกใช้โค้ดภายในฟังก์ชันเพียงครั้งเดียว.

      เราสร้าง ประตู [] อาร์เรย์ที่จะเก็บวัตถุ 24 ประตู เราวนซ้ำจากวันที่ 1 ถึง 24 (พวกมันจะเป็นองค์ประกอบที่ 0-23 ของอาร์เรย์ [] เนื่องจากอาร์เรย์มีค่าเป็นศูนย์) และในที่สุดก็คืนค่าทั้งหมด ประตู [] อาร์เรย์รวมถึงวัตถุ 24 ประตูเพื่อแสดงในเบราว์เซอร์.

       (function () var doors = []; สำหรับ (var i = 0; i < 24; i++)  doors[i] = new Door(myCal, i + 1); doors[i].content();  return doors; )();
      • การสาธิต
      • แหล่งดาวน์โหลด