Chuyển tới nội dung chính

Sheet Modal

Cú pháp

<zmp-sheet>

Sheet Modal Properties

PropTypeDescription
positionstringVị trí mà sheet modal xuất hiện, có thể là top hoặc bottom. Mặc định position sẽ có giá trị là bottom
topbooleanCách khác để set position="top"
bottombooleanCách khác để set position="bottom"
titlestringThêm title cho sheet modal
sub-titlestringThêm sub title cho sheet modal
close-buttonbooleanHiển thị button đóng modal hoặc không
backdropbooleanBật lớp overlay phía dưới sheet modal
backdrop-elstring | objectHTML element hoặc CSS selector của backdrop element tùy chỉnh
openedbooleanCho phép đóng/mở modal sheet
close-by-backdrop-clickbooleanNếu bật, sẽ đóng modal sheet khi người dùng click vào backdrop. Mặc định sẽ kế thừa giá trị được thiết lập tại app parameter
close-by-outside-clickbooleanNếu bật, sẽ đóng modal sheet khi người dùng click ngoài nó. Mặc định sẽ kế thừa giá trị được thiết lập tại app parameter
close-on-escapebooleanNếu bật, người dùng có thể đóng modal sheet bằng cách nhấn nút esc
swipe-to-closebooleanCho phép vuốt để đóng sheet modal
swipe-to-stepbooleanKhi bật, có thể chia sheet đã mở thành 2 trạng thái: đã mở một phần và mở hoàn toàn (Dùng trong trường hợp chia sheet modal thành các bước). Lưu ý: Thêm class: sheet-modal-swipe-step vào container element của step 1
swipe-handlerHTMLElement | stringCó thể truyền HTML element hoặc CSS selector của một element tùy chỉnh dùng làm vị trí vuốt. (cần bật swipeToClose or swipeToStep)
animatebooleanCho phép modal mở/đóng với animation hay không
container-elHTMLElement | stringElement mà modal được gắn vào (mặc định sẽ là app root element)

Sheet Modal Events

EventDescription
@sheet:openEvent sẽ được triggered khi Sheet Modal bắt đầu opening animation
@sheet:openedEvent sẽ được triggered sau khi Sheet Modal mở và hoàn thành opening animation
@sheet:closeEvent sẽ được triggered khi Sheet Modal bắt đầu closing animation
@sheet:closedEvent sẽ được triggered sau khi Sheet Modal đóng và hoàn thành closing animation
@sheet:stepopenEvent sẽ được triggered khi phần Sheet swipe step được mở
@sheet:stepcloseEvent sẽ được triggered khi phần Sheet swipe step đóng
@sheet:stepprogressEvent sẽ được triggered khi trạng thái của Sheet swipe step ở giữa các trạn thái đã mở và đã đóng. Đối số event với event.detail là number biểu thị sheet step đang mở(từ 0 đến 1)

Sheet Modal Slots

SlotDescription
defaultElement sẽ được chèn dưới dạng con của scrollable <div className="sheet-modal-inner"/> element
staticGiống default
fixedElement sẽ được chèn phía trước scrollable <div className="sheet-modal-inner"/> element
<zmp-sheet>
<template #fixed>Fixed slot</template>
<template #static>Static slot</template>
<span>Default slot</span>
</zmp-sheet>

Renders thành

<div className="sheet-modal">
<span>Fixed slot</span>
<div className="sheet-modal-inner">
<span>Default slot</span>
<span>Static slot</span>
</div>
</div>

Đóng và mở Sheet Modal

Có thể điều khiển trạng thái đóng, mở Sheet Modal:

  • Sử dụng Sheet Modal API
  • Bằng các xác định giá trị true hoặc false cho opened prop
  • Bằng cách click lên Link hoặc Button đã xác dịnh sheetOpen property (để mở) và sheetClose property để đóng

Sheet Modal Instance Methods

MethodDescription
sheet.open(animate)Mở sheet. Với animate - boolean (mặc định true): Xác định mở sheet modal với animation hoặc không
sheet.close(animate)Đóng sheet. Với animate - boolean (mặc định true): Xác định đóng sheet modal với animation hoặc không
sheet.stepOpen()Mở rộng sheet swipe step
sheet.stepClose()Thu hẹp sheet swipe step
sheet.stepToggle()Toggle (Đóng hoặc mở) sheet swipe step
sheet.setSwipeSet()Cập nhật vị trí step. Bắt buộc gọi hàm này sau khi nội dung của sheet modal bị thay đổi trực tiếp khi nó vẫn còn đang mở
sheet.destroy()Hủy instance sheet
sheet.on(event, handler)Thêm event handler
sheet.once(event, handler)Thêm event handler và sẽ được hủy sau khi event fired
sheet.off(event, handler)Xóa event handler
sheet.off(event)Xóa tất cả các handlers cho một event xác định
sheet.emit(event, ...args)Tự phát sinh event theo ý muốn

Ví dụ

Code demo fallback when rendering server side!