แบบฝึกหัด - เพิ่มการโต้ตอบกับ JavaScript
JavaScript (หรือ ECMAScript) เป็นภาษาการเขียนโปรแกรมที่ช่วยให้คุณเพิ่มการโต้ตอบกับเว็บเพจของคุณ
ตัวอย่างเช่น คุณสามารถใช้ JavaScript เพื่อกําหนดลักษณะการทํางานที่เกิดขึ้นเมื่อผู้ใช้เลือกปุ่ม เช่น การเปิดหน้าต่างป๊อปอัป การใช้ JavaScript คุณสามารถเพิ่มหรือลบเนื้อหาออกจากหน้าเว็บได้โดยไม่ต้องโหลดใหม่
ในหน่วยนี้ คุณตั้งค่าตัวอย่างไฟล์ JavaScript สําหรับเว็บเพจของคุณ ในนั้น คุณสร้างปุ่มเพื่อสลับไปมาระหว่างธีมสว่างและธีมสีเข้ม จากนั้น คุณแนบปุ่มกับรหัส JavaScript ที่ดําเนินการสลับธีมจริง สุดท้าย คุณตรวจสอบโครงการที่เสร็จแล้วโดยใช้เครื่องมือสําหรับนักพัฒนาของเบราว์เซอร์ของคุณ
ลิงก์ไปยัง JavaScript
เช่นเดียวกับ CSS คุณสามารถเพิ่ม JavaScript ลงในไฟล์ HTML ได้โดยตรง แต่แนวทางปฏิบัติที่ดีที่สุดที่แนะนําคือการบันทึก JavaScript ของคุณในไฟล์แยกต่างหาก การเพิ่มรหัส JavaScript ของคุณลงในไฟล์แยกต่างหากทําให้ง่ายต่อการนํากลับมาใช้ใหม่ในหลายหน้าเว็บ ตัวอย่างเช่น คุณสามารถสร้างการแจ้งเตือนแบบป็อปอัพโดยการเพิ่มรหัสต่อไปนี้ที่ใดก็ได้ภายในเนื้อความของเว็บเพจของคุณ
<script>alert('Hello World')</script>
อย่างไรก็ตาม จะเป็นการดีกว่าถ้าเพิ่มรหัส JavaScript ของคุณไปยังไฟล์แยกต่างหากที่คุณสามารถเชื่อมโยงไปยังทุกไฟล์ที่ต้องการฟังก์ชันการทํางานแบบกําหนดเองของคุณ
แท็กสคริปต์ HTML <script> ช่วยให้เราสามารถเชื่อมโยงไปยังไฟล์ JavaScript ภายนอก ซึ่งเป็นวิธีที่คุณกําหนดค่าเว็บแอปของคุณในแบบฝึกหัดนี้
เปิดไฟล์
index.htmlในรหัส Visual Studioค้นหาองค์ประกอบ
</body>ปิดและวางเคอร์เซอร์ของคุณบนบรรทัดใหม่ด้านบน ใส่script:srcแล้วกด Enter แท็กการเปิดและปิดสําหรับองค์ประกอบ<script>จะถูกเพิ่มลงในโค้ดของคุณปรับเปลี่ยนองค์ประกอบ
<script>เพื่อโหลดไฟล์app.jsของคุณดังที่แสดงในตัวอย่างต่อไปนี้ ตรวจสอบให้แน่ใจว่าอยู่หลังจากองค์ประกอบ</ul>ปิดสําหรับรายการ... <ul> <li class="list">Add visual styles</li> <li class="list">Add light and dark themes</li> <li>Enable switching the theme</li> </ul> <script src="app.js"></script> ...
คุณสามารถวางองค์ประกอบ <script> ใน <head> หรือที่อื่น ๆ ใน <body> อย่างไรก็ตาม การวางองค์ประกอบ <script> ที่ส่วนท้ายของส่วน <body> จะเปิดใช้งานเนื้อหาหน้าทั้งหมดที่แสดงบนหน้าจอก่อน ก่อนที่จะโหลดสคริปต์
เพิ่มการยอมรับข้อบกพร่อง
ในไฟล์ HTML ของคุณ ให้เพิ่มองค์ประกอบ
<noscript>หลังจากแท็ก</script>ปิดที่สามารถใช้เพื่อแสดงข้อความถ้า JavaScript ถูกปิดใช้งาน<script src="app.js"></script> <noscript>You need to enable JavaScript to view the full site.</noscript>การเพิ่มองค์ประกอบ
<noscript>เป็นตัวอย่างของความอดทนของ ข้อบกพร่อง หรือ การลดประสิทธิภาพของอย่างนุ่มนวล เมื่อคุณใช้องค์ประกอบ<noscript>โค้ดของคุณสามารถตรวจหาและวางแผนเมื่อคุณลักษณะไม่ได้รับการสนับสนุนหรือพร้อมใช้งาน
ตั้งค่าโหมดเข้มงวด
JavaScript ออกแบบมาเพื่อเรียนรู้ได้ง่ายและช่วยให้นักพัฒนาซอฟต์แวร์ทําข้อผิดพลาดบางอย่าง ตัวอย่างเช่น JavaScript จะไม่แสดงข้อผิดพลาดเมื่อคุณใช้ตัวแปรที่สะกดผิด และสร้างตัวแปรส่วนกลางใหม่แทน เมื่อคุณเริ่มเรียนรู้ JavaScript การมีข้อผิดพลาดน้อยลงจะสะดวก อย่างไรก็ตาม อาจนําไปสู่การเขียนโค้ดที่ยากสําหรับเบราว์เซอร์ที่จะปรับให้เหมาะสมและยากขึ้นสําหรับคุณในการดีบัก
สลับไปยังโหมดที่เข้มงวดเพื่อรับข้อผิดพลาดที่มีประโยชน์มากขึ้นเมื่อคุณทําผิดพลาด
ใน Visual Studio Code เปิดไฟล์
app.jsและป้อนข้อมูลต่อไปนี้:'use strict';
เพิ่มปุ่ม
คุณต้องมีวิธีในการอนุญาตให้ผู้ใช้ของคุณสลับระหว่างธีมสีสว่างและสีเข้มในเว็บเพจของคุณ ในแบบฝึกหัดนี้ คุณใช้ฟังก์ชันการทํางานนั้นด้วยองค์ประกอบ <button> HTML
ในไฟล์ HTML ของคุณ (
index.html) ให้เพิ่มองค์ประกอบ<button>วางปุ่มภายในองค์ประกอบ<div>และเพิ่มปุ่มหลังจากจุดสิ้นสุดของรายการ (</ul>)... <ul> <li class="list">Add visual styles</li> <li class="list">Add light and dark themes</li> <li>Enable switching the theme</li> </ul> <div> <button class="btn">Dark</button> </div> <script src="app.js"></script> ...โปรดสังเกตว่าองค์ประกอบ
<button>ในตัวอย่างนี้มี คลาส แอตทริบิวต์ที่คุณสามารถใช้เพื่อนําสไตล์ CSS ไปใช้บันทึกการเปลี่ยนแปลงไปยังไฟล์ HTML ของคุณด้วยแป้นพิมพ์ลัด Control + S บน Windows หรือ Command + S บน macOS
ในไฟล์ CSS ของคุณ (
main.css) ให้เพิ่มกฎใหม่ด้วยตัวเลือกคลาส.btnสําหรับปุ่ม HTML ของคุณ เมื่อต้องการทําให้สีของปุ่มแตกต่างจากสีของธีมสีอ่อนหรือสีเข้มทั่วไป ให้ตั้งค่าคุณสมบัติcolorและbackground-colorในกฎนี้ เมื่อหน้าของคุณปรากฏขึ้น คุณสมบัติ.btnเหล่านี้จะแทนที่คุณสมบัติเริ่มต้นที่ตั้งไว้ในกฎbodyของไฟล์ CSS ของคุณ.btn { color: var(--btnFontColor); background-color: var(--btnBg); }ถัดไป ปรับเปลี่ยนกฎ
.btnเพื่อเพิ่มสไตล์บางอย่างสําหรับขนาด รูปร่าง ลักษณะที่ปรากฏ และการวางตําแหน่งของปุ่ม CSS ต่อไปนี้สร้างปุ่มกลมทางด้านขวาของส่วนหัวของหน้า.btn { position: absolute; top: 20px; left: 250px; height: 50px; width: 50px; border-radius: 50%; border: none; color: var(--btnFontColor); background-color: var(--btnBg); }ถัดไป อัปเดต CSS สําหรับธีมสีสว่างและสีเข้ม กําหนดตัวแปรใหม่บางอย่าง
--btnBgและ--btnFontColorเพื่อระบุสีพื้นหลังเฉพาะปุ่มและสีฟอนต์.light-theme { --bg: var(--green); --fontColor: var(--black); --btnBg: var(--black); --btnFontColor: var(--white); } .dark-theme { --bg: var(--black); --fontColor: var(--green); --btnBg: var(--white); --btnFontColor: var(--black); }บันทึกการเปลี่ยนแปลงไปยังไฟล์ CSS ของคุณด้วยแป้นพิมพ์ลัด Control + S บน Windows หรือคําสั่ง + S บน macOS
เพิ่มตัวจัดการเหตุการณ์
เพื่อทําให้ปุ่มทํางานบางอย่างเมื่อคุณเลือก คุณต้องมีตัวจัดการเหตุการณ์ในไฟล์ JavaScript ของคุณ ตัวจัดการเหตุการณ์คือวิธีการเรียกใช้ฟังก์ชัน JavaScript เมื่อมีเหตุการณ์เกิดขึ้นบนหน้า สําหรับปุ่ม มาเพิ่มตัวจัดการเหตุการณ์สําหรับเหตุการณ์ click กันเถอะ ฟังก์ชันตัวจัดการเหตุการณ์ทํางานเมื่อมีเหตุการณ์ click เกิดขึ้น
ก่อนที่คุณจะเพิ่มตัวจัดการเหตุการณ์ คุณจําเป็นต้องมีการอ้างอิงไปยังองค์ประกอบปุ่ม
ในไฟล์ JavaScript ของคุณ (
app.js) ใช้document.querySelectorเพื่อรับการอ้างอิงปุ่มconst switcher = document.querySelector('.btn');ฟังก์ชัน
document.querySelectorใช้ตัวเลือก CSS เช่นเดียวกับที่คุณใช้ในไฟล์ CSS ของคุณ ขณะนี้switcherเป็นการอ้างอิงถึงปุ่มในหน้าถัดไป เพิ่มตัวจัดการเหตุการณ์สําหรับเหตุการณ์
clickในโค้ดต่อไปนี้ คุณเพิ่มตัวรอรับการฟังสําหรับเหตุการณ์clickและกําหนดฟังก์ชันตัวจัดการเหตุการณ์ที่เบราว์เซอร์ดําเนินการเมื่อเหตุการณ์clickเกิดขึ้นswitcher.addEventListener('click', function() { document.body.classList.toggle('light-theme'); document.body.classList.toggle('dark-theme'); });
ในโค้ดก่อนหน้า คุณใช้วิธีการ toggle เพื่อปรับเปลี่ยนแอตทริบิวต์คลาสขององค์ประกอบ <body> วิธีนี้จะเพิ่มหรือลบ light-theme และคลาส dark-theme โดยอัตโนมัติ โค้ดนี้ใช้สไตล์สีเข้มแทนสไตล์สีอ่อนถ้าคุณคลิก จากนั้นสไตล์สว่างแทนสีเข้มหากคุณคลิกอีกครั้ง
อย่างไรก็ตาม ป้ายชื่อสําหรับปุ่มยังจําเป็นต้องอัปเดตเพื่อแสดงธีมที่ถูกต้อง ดังนั้นคุณจําเป็นต้องเพิ่มคําสั่ง if เพื่อกําหนดธีมปัจจุบัน และอัปเดตป้ายชื่อปุ่ม
รหัส JavaScript ของคุณควรมีลักษณะเหมือนกับตัวจัดการเหตุการณ์ที่เพิ่มเข้ามามีดังนี้:
'use strict';
const switcher = document.querySelector('.btn');
switcher.addEventListener('click', function() {
document.body.classList.toggle('light-theme');
document.body.classList.toggle('dark-theme');
const className = document.body.className;
if(className == "light-theme") {
this.textContent = "Dark";
} else {
this.textContent = "Light";
}
});
ซึ่งเป็นมาตรฐาน JavaScript ที่จะใช้กรณีคาเมล สําหรับชื่อตัวแปรที่มีมากกว่าหนึ่งคํา ตัวอย่างเช่น ตัวแปร className
ข้อความคอนโซล
ในฐานะนักพัฒนาเว็บ คุณสามารถสร้างข้อความที่ซ่อนไว้บนหน้าเว็บได้ แต่คุณสามารถอ่านได้ในแท็บ เครื่องมือนักพัฒนา ในแท็บ Console การใช้ข้อความคอนโซล มีประโยชน์ในการดูผลลัพธ์ของโค้ด
ในไฟล์ JavaScript ของคุณ เพิ่มการเรียกไปยัง console.log หลังจากคําสั่ง if แต่ภายในตัวรอรับการติดต่อเหตุการณ์
หลังจากที่คุณทําการเปลี่ยนแปลงนี้ รหัส JavaScript ที่สมบูรณ์ของคุณควรมีลักษณะดังนี้
'use strict';
const switcher = document.querySelector('.btn');
switcher.addEventListener('click', function() {
document.body.classList.toggle('light-theme');
document.body.classList.toggle('dark-theme');
const className = document.body.className;
if(className == "light-theme") {
this.textContent = "Dark";
} else {
this.textContent = "Light";
}
console.log('current class name: ' + className);
});
เมื่อคุณอยู่ในไฟล์ JavaScript ใน Visual Studio Code คุณสามารถใช้การกรอกข้อมูลอัตโนมัติสําหรับ console.log โดยการป้อน log และการกด Enter
คุณสามารถกําหนดข้อความ สตริง ด้วยเครื่องหมายอัญประกาศเดี่ยวหรือสองขีดล้อมรอบข้อความ
เปิดในเบราว์เซอร์
เมื่อต้องการแสดงตัวอย่าง ให้คลิกขวา
index.htmlและเลือก เปิดในเบราว์เซอร์เริ่มต้นหรือโหลดแท็บเบราว์เซอร์เดียวกันอีกครั้งโดยการกด F5เลือกปุ่ม มืดของ ใหม่เพื่อสลับไปยังธีมสีเข้ม
ตรวจสอบให้แน่ใจว่าทุกอย่างดูถูกต้องและทํางานตามที่คาดไว้ ถ้าไม่เป็นเช่นนั้น คุณควรตรวจสอบขั้นตอนก่อนหน้านี้เพื่อดูว่าคุณพลาดบางสิ่งไปหรือไม่
ตรวจสอบหน้าในเครื่องมือสําหรับนักพัฒนา
เปิดเครื่องมือนักพัฒนาโดยการคลิกขวาและเลือก ตรวจสอบหรือโดยใช้แป้นพิมพ์ลัด F12 อีกวิธีหนึ่งคือใช้ทางลัด Ctrl + Shift + I บน Windows หรือ Linux และ ตัวเลือก + คําสั่ง + I บน macOS
เลือกแท็บ องค์ประกอบ และเลือกแท็บ Styles
เลือกองค์ประกอบ
<body>ในแท็บ สไตล์ ให้ดูที่ธีมที่นําไปใช้ ถ้าธีมปัจจุบันเป็นสีเข้ม สไตล์dark-themeจะถูกนําไปใช้ตรวจสอบให้แน่ใจว่าได้เลือกธีมสีเข้มแล้ว
เลือกแท็บ คอนโซล เพื่อดูข้อความ
console.logcurrent class name: dark-theme
เมื่อใช้คอนโซล คุณจะได้รับข้อมูลเชิงลึกที่น่าสนใจจากรหัส JavaScript ของคุณ เพิ่มข้อความคอนโซลเพิ่มเติมเพื่อทําความเข้าใจว่าส่วนใดของโค้ดที่คุณได้รับการดําเนินการ และทราบค่าปัจจุบันของตัวแปรอื่นๆ
หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับคอนโซล โปรดดูบทความภาพรวม Console