Hôm nay chúng ta sẽ khám phá kỹ thuật ẩn và hiển thị các phần tử trên trang web bằng JavaScript - tựa như một trò chơi trốn tìm đầy phép thuật.
style.display.display: none; để ẩn phần tử ban đầu khi tải trang.block hoặc inline để hiển thị lại phần tử bằng JS."Trong lập trình trò chơi, chúng ta rất hay gặp tình huống: khi nhân vật nhặt được chìa khóa thì chiếc rương mới xuất hiện, hoặc khi bấm vào nút 'Hướng dẫn' thì một bảng thông tin mới hiện ra.
Hôm nay, chúng ta sẽ học cách làm cho các thẻ HTML 'tàng hình' hoặc 'xuất hiện' theo ý muốn của mình!"
Trong Scratch, các em dùng 2 khối lệnh rất quen thuộc trong nhóm Hiển thị (Looks):
👁️ Khối lệnh [hiện] (show) và khối lệnh [ẩn] (hide)
Trong JavaScript, chúng ta điều khiển hành vi này thông qua thuộc tính:
style.display = 'none' (để ẩn) hoặc style.display = 'block' (để hiện)
Để một phần tử (ví dụ: hộp quà hoặc thông báo chiến thắng) không xuất hiện ngay khi vừa mở trang web, ta thiết lập CSS ẩn nó đi trước.
.hop-qua-an {
display: none; /* Khối này sẽ bị tàng hình hoàn toàn trên trang */
}
Khi muốn khối này hiện ra bình thường dưới dạng một khối độc lập chiếm toàn bộ chiều ngang dòng, CSS sẽ chuyển trạng thái hiển thị của nó thành:
.hop-qua-hien {
display: block; /* Khối hiển thị lại bình thường */
}
JavaScript có thể can thiệp vào CSS của thẻ thông qua thuộc tính .style. Chúng ta sẽ dùng lệnh gán để đổi giá trị display động khi có sự kiện click chuột.
// Tìm thẻ có id là 'hop-qua' và làm nó hiện lên
document.getElementById('hop-qua').style.display = 'block';
// Tìm thẻ có id là 'nut-bam' và ẩn nó đi
document.getElementById('nut-bam').style.display = 'none';
Học sinh tìm hiểu cách kết hợp cả hai phép thuật đã học: thay đổi thuộc tính .src của thẻ ảnh và thay đổi .style.display của khối nội dung để tạo ra hiệu ứng mở hòm kho báu chân thực.
function moHopQua() {
// 1. Đổi hình ảnh sang trạng thái đã mở
document.getElementById('anh-hop').src = 'open_box.png';
// 2. Cho dòng thông điệp chúc mừng hiện ra
document.getElementById('loi-chuc').style.display = 'block';
}
Mô tả: Tạo trang web hiển thị một chiếc rương kho báu đang đóng khóa. Khi bấm nút "Mở rương", hình ảnh chiếc rương sẽ chuyển sang trạng thái mở ra, đồng thời xuất hiện một khối thông báo quà tặng lấp lánh (vốn bị ẩn ban đầu).
bai16-1, thư mục con assets chứa 2 ảnh chiếc rương (chestclose.png, chestopen.png), tạo file index.html và style.css.index.html, thiết lập tiêu đề <h1>: RƯƠNG KHO BÁU BÍ MẬT.<img id="anh-ruong" src="chestclose.png" style="width: 150px;">.<div id="hop-qua" style="display: none;"><h3>Chúc mừng em đã nhận được 10 hạt dẻ phép thuật! 🌰</h3></div>.
<button onclick="moRuong()">Mở Rương</button>.<script> ở cuối body:
function moRuong() {
// Thay đổi ảnh rương thành rương mở
document.getElementById('anh-ruong').src = 'chestopen.png';
// Hiển thị phần tử chứa quà tặng
document.getElementById('hop-qua').style.display = 'block';
}
style.css, định dạng căn giữa giao diện, đặt kiểu chữ đẹp mắt, tô màu nền rực rỡ cho khối thông báo quà tặng.