Tại sao đã có component vue-js-modal mà tôi lại phải tạo modal làm gì nữa để mắc công vậy. Vâng cũng có lý do của nó đó là vue-js-modal ở chế độ mobile sự kiện click event của các element trên nó không hoạt động. Ngay sau đây tôi xin hướng dẫn cách làm modal cho vuejs 2
Anh chị chỉ cần thay thế <!–Nội dung modal tại đây–> bằng code html của anh chị, lưu ý mỗi modal anh chị nên đặt tên id cho modal và không được trùng ở đây là openChangeFullname
1 2 3 4 5 6 |
<div id="openChangeFullname" class="modal"> <div class="modal-content"> <span class="close">×</span> <!--Nội dung modal tại đây--> </div> </div> |
anh chị cần truyền vào tham số là id của modal ở trên, trong trường hợp này là openChangeFullname
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
openModal(idModal){ const modal = document.getElementById(idModal); modal.style.display = "flex"; const span = modal.querySelector('.close'); span.onclick = () => { modal.style.display = "none"; } window.onclick = (event) => { if (event.target == modal) { modal.style.display = "none"; } } }, closeModal(idModal){ const modal = document.getElementById(idModal); modal.style.display = "none"; } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
.modal { display: none; position: fixed; z-index: 2; left: 0; top: 0; width: 100%; height: 100%; overflow: auto; background-color: rgb(0,0,0); background-color: rgba(0,0,0,0.4); } .modal-content { background-color: #fefefe; margin: auto auto; padding: 26px 10px; border: 1px solid #888; width: 100%; max-width: 370px; position:relative; } .close { color: #aaa; float: right; font-size: 28px; font-weight: bold; position: absolute; top: 3px; right: 12px; } .close:hover, .close:focus { color: black; text-decoration: none; cursor: pointer; } |
Chỉ đơn giản vậy thôi mà hiệu quả nha anh chị, chúc anh chị tạo modal trong vuejs 2 thành công
Mọi sự sao chép xin ghi rõ nguồn là fcwordpress.net
Chuyên trang về wordpress: hướng dẫn thiết kế theme, plugin, thủ thuật wordpress