เคล็ดลับเครื่องมือ
เอกสารประกอบและตัวอย่างสำหรับการเพิ่มคำแนะนำเครื่องมือ Bootstrap แบบกำหนดเองด้วย CSS และ JavaScript โดยใช้ CSS3 สำหรับแอนิเมชั่นและแอตทริบิวต์ข้อมูลสำหรับการจัดเก็บชื่อในเครื่อง
ภาพรวม
สิ่งที่ควรทราบเมื่อใช้ปลั๊กอินคำแนะนำเครื่องมือ:
- เคล็ดลับเครื่องมืออาศัยPopper.js ไลบรารีของบุคคลที่สาม สำหรับการวางตำแหน่ง คุณต้องรวมpopper.min.jsก่อน bootstrap.js หรือใช้
bootstrap.bundle.min.js
/bootstrap.bundle.js
ซึ่งมี Popper.js เพื่อให้คำแนะนำเครื่องมือทำงาน! - หากคุณกำลังสร้าง JavaScript จากแหล่งที่มา มันต้องการ
util.js
. - คำแนะนำเครื่องมือเป็นทางเลือกสำหรับเหตุผลด้านประสิทธิภาพ ดังนั้นคุณต้องเริ่มต้นด้วยตนเอง
- คำแนะนำเครื่องมือที่มีชื่อความยาวเป็นศูนย์จะไม่แสดงขึ้น
- ระบุ
container: 'body'
เพื่อหลีกเลี่ยงปัญหาการแสดงผลในองค์ประกอบที่ซับซ้อนมากขึ้น (เช่น กลุ่มอินพุต กลุ่มปุ่ม ฯลฯ) - คำแนะนำเครื่องมือทริกเกอร์ในองค์ประกอบที่ซ่อนอยู่จะไม่ทำงาน
- คำแนะนำเครื่องมือสำหรับ
.disabled
หรือdisabled
องค์ประกอบต้องถูกทริกเกอร์บนองค์ประกอบ wrapper - เมื่อถูกเรียกจากไฮเปอร์ลิงก์ที่มีหลายบรรทัด คำแนะนำเครื่องมือจะอยู่กึ่งกลาง ใช้
white-space: nowrap;
กับของคุณ<a>
เพื่อหลีกเลี่ยงพฤติกรรมนี้ - ต้องซ่อนคำแนะนำเครื่องมือก่อนที่จะลบองค์ประกอบที่เกี่ยวข้องออกจาก DOM
- คำแนะนำเครื่องมือสามารถทริกเกอร์ได้ด้วยองค์ประกอบภายใน Shadow DOM
เอฟเฟกต์ภาพเคลื่อนไหวของส่วนประกอบนี้ขึ้นอยู่กับprefers-reduced-motion
คิวรีสื่อ ดูส่วนการเคลื่อนไหวที่ลดลงของเอกสารการช่วยสำหรับการเข้าถึงของเรา
ได้ทั้งหมดที่? เยี่ยมมาก มาดูว่ามันทำงานอย่างไรพร้อมตัวอย่างบางส่วน
ตัวอย่าง: เปิดใช้งานคำแนะนำเครื่องมือทุกที่
วิธีหนึ่งในการเริ่มต้นคำแนะนำเครื่องมือทั้งหมดบนหน้าคือการเลือกตามdata-toggle
แอตทริบิวต์:
ตัวอย่าง
วางเมาส์เหนือลิงก์ด้านล่างเพื่อดูคำแนะนำเครื่องมือ:
กางเกงรัดรูป ระดับต่อไป keffiyeh คุณอาจไม่เคยได้ยินเกี่ยวกับพวกเขา บูธภาพถ่ายเคราผ้ายีนส์ดิบ letterpress กระเป๋าถือวีแก้น stumptown เครื่องแต่งกายแบบอเมริกันแบบ 8 บิตของ mcsweeney fixie ที่ยั่งยืนจากฟาร์มสู่โต๊ะมีผ้าแชมเบรย์ไวนิลริชาร์ดสันเทอร์รี่ Beard stumptown, เสื้อสเวตเตอร์ถัก banh mi lomo Thundercats เต้าหู้ไบโอดีเซล วิลเลี่ยมส์เบิร์ก มาร์ฟา, แชมเบรย์วีแก้นคลีนส์สี่โลโค แมคสวีนีย์ ช่างฝีมือที่น่าขันจริงๆไม่ว่า จะเป็นคีย์ตาร์ใดก็ตาม ทวิตเตอร์ ของ Austin จากฟาร์มถึงโต๊ะซึ่งจัดการไวรัสกาแฟต้นกำเนิดเดียวจากแหล่งเดียวของ freegan cred ฟรีแกน
วางเมาส์เหนือปุ่มด้านล่างเพื่อดูคำแนะนำเครื่องมือสี่ทิศทาง: บน ขวา ล่าง และซ้าย
และด้วยการเพิ่ม HTML ที่กำหนดเอง:
การใช้งาน
ปลั๊กอินคำแนะนำเครื่องมือสร้างเนื้อหาและมาร์กอัปตามต้องการ และโดยค่าเริ่มต้นจะวางคำแนะนำเครื่องมือหลังองค์ประกอบทริกเกอร์
ทริกเกอร์คำแนะนำเครื่องมือผ่าน JavaScript:
ล้นauto
และscroll
ตำแหน่งคำแนะนำเครื่องมือพยายามเปลี่ยนโดยอัตโนมัติเมื่อคอนเทนเนอร์หลักมีoverflow: auto
หรือoverflow: scroll
เหมือนของเรา.table-responsive
แต่ยังคงตำแหน่งตำแหน่งเดิม ในการแก้ไข ให้ตั้งค่าboundary
ตัวเลือกเป็นอย่างอ��่นที่ไม่ใช่ค่าเริ่มต้น'scrollParent'
เช่น'window'
:
มาร์กอัป
มาร์กอัปที่จำเป็นสำหรับคำแนะนำเครื่องมือเป็นเพียงdata
แอตทริบิวต์และtitle
ในองค์ประกอบ HTML ที่คุณต้องการให้มีคำแนะนำเครื่องมือ มาร์กอัปของคำแนะนำเครื่องมือที่สร้างขึ้นนั้นค่อนข้างง่าย แม้ว่าจะต้องมีตำแหน่ง (โดยค่าเริ่มต้น กำหนดtop
โดยปลั๊กอิน)
การทำให้คำแนะนำเครื่องมือใช้งานได้สำหรับผู้ใช้คีย์บอร์ดและเทคโนโลยีช่วยเหลือ
คุณควรเพิ่มคำแนะนำเครื่องมือให้กับองค์ประกอบ HTML ที่เน้นคีย์บอร์ดและโต้ตอบได้ตามปกติ (เช่น ลิงก์หรือตัวควบคุมฟอร์ม) แม้ว่าองค์ประกอบ HTML ตามอำเภอใจ (เช่น<span>
s) สามารถทำให้โฟกัสได้โดยการเพิ่มtabindex="0"
แอตทริบิวต์ สิ่งนี้จะเพิ่มการหยุดแท็บที่น่ารำคาญและทำให้เกิดความสับสนในองค์ประกอบที่ไม่โต้ตอบสำหรับผู้ใช้แป้นพิมพ์ นอกจากนี้ เทคโนโลยีอำนวยความสะดวกส่วนใหญ่ในปัจจุบันยังไม่ประกาศคำแนะนำเครื่องมือในสถานการณ์นี้
นอกจากนี้ อย่าพึ่งเพียงhover
เป็นทริกเกอร์สำหรับคำแนะนำเครื่องมือของคุณ เนื่องจากจะทำให้คำแนะนำเครื่องมือของคุณไม่สามารถทริกเกอร์สำหรับผู้ใช้คีย์บอร์ดได้
องค์ประกอบพิการ
องค์ประกอบที่มีdisabled
แอตทริบิวต์ไม่โต้ตอบ หมายความว่าผู้ใช้ไม่สามารถโฟกัส วางเมาส์เหนือ หรือคลิกเพื่อทริกเกอร์คำแนะนำเครื่องมือ (หรือป๊อปโอเวอร์) ในการแก้ปัญหาชั่วคราว คุณจะต้องทริกเกอร์คำแนะนำเครื่องมือจาก wrapper <div>
หรือ<span>
ทำให้แป้นพิมพ์โฟกัสได้โดยใช้tabindex="0"
และแทนที่pointer-events
องค์ประกอบบนที่ถูกปิดใช้งาน
ตัวเลือก
ตัวเลือกสามารถส่งผ่านแอตทริบิวต์ข้อมูลหรือ JavaScript สำหรับแอ็ตทริบิวต์ data ให้ผนวกชื่ออ็อพชันต่อท้ายdata-
เช่นเดียวกับในdata-animation=""
.
โปรดทราบว่าด้วยเหตุผลด้านความปลอดภัยsanitize
, sanitizeFn
และwhiteList
ตัวเลือกไม่สามารถระบุได้โดยใช้แอตทริบิวต์ข้อมูล
ชื่อ | พิมพ์ | ค่าเริ่มต้น | คำอธิบาย |
---|---|---|---|
แอนิเมชั่น | บูลีน | จริง | ใช้ CSS Fade Transition กับคำแนะนำเครื่องมือ |
คอนเทนเนอร์ | สตริง | องค์ประกอบ | เท็จ | เท็จ | เพิ่มคำแนะนำเครื่องมือต่อท้ายองค์ประกอบเฉพาะ ตัวอย่าง: |
ล่าช้า | หมายเลข | วัตถุ | 0 | ความล่าช้าในการแสดงและซ่อนคำแนะนำเครื่องมือ (ms) - ใช้ไม่ได้กับประเภททริกเกอร์ด้วยตนเอง หากมีการระบุตัวเลข การหน่วงเวลาจะใช้กับทั้งซ่อน/แสดง โครงสร้างวัตถุคือ: |
html | บูลีน | เท็จ | อนุญาต HTML ในคำแนะนำเครื่องมือ หากเป็นจริง แท็ก HTML ในคำแนะนำเครื่องมือ ใช้ข้อความหากคุณกังวลเกี่ยวกับการโจมตี XSS |
ตำแหน่ง | สตริง | การทำงาน | 'สูงสุด' | วิธีวางตำแหน่งคำแนะนำเครื่องมือ - auto | ด้านบน | ด้านล่าง | ซ้าย | ขวา. เมื่อใช้ฟังก์ชันเพื่อกำหนดตำแหน่ง ฟังก์ชันนี้จะถูกเรียกโดยมีโหนด DOM ของคำแนะนำเครื่องมือเป็นอาร์กิวเมนต์แรก และโหนด DOM ที่ทริกเกอร์องค์ประกอบเป็นโหนดที่สอง |
ตัวเลือก | สตริง | เท็จ | เท็จ | หากมีตัวเลือก อ็อบเจ็กต์คำแนะนำเครื่องมือจะถูกส่งไปยังเป้าหมายที่ระบุ ในทางปฏิบัติ จะใช้เพื่อใช้คำแนะนำเครื่องมือกับองค์ประกอบ DOM ที่เพิ่มแบบไดนามิก ( jQuery.on การสนับสนุน) ดูสิ่งนี้และตัวอย่างข้อมูล |
แม่แบบ | สตริง | '<div class="tooltip" role="tooltip"><div class="arrow"></div><div class="tooltip-inner"></div></div>' |
HTML พื้นฐานที่จะใช้เมื่อสร้างคำแนะนำเครื่องมือ คำแนะนำเครื่องมือ
องค์ประกอบ wrapper นอกสุดควรมี |
ชื่อ | สตริง | องค์ประกอบ | การทำงาน | '' | ค่าเริ่มต้นของชื่อหากไม่มี หากมีการกำหนดฟังก์ชัน ฟังก์ชันนั้นจะถูกเรียกโดย |
สิ่งกระตุ้น | สตริง | 'เลื่อนโฟกัส' | วิธีการเรียกคำแนะนำเครื่องมือ - คลิก | โฉบ | โฟกัส | คู่มือ. คุณอาจส่งทริกเกอร์หลายตัว แยกพวกเขาด้วยช่องว่าง
|
offset | หมายเลข | สตริง | การทำงาน | 0 | ออฟเซ็ตของคำแนะนำเครื่องมือที่สัมพันธ์กับเป้าหมาย เมื่อใช้ฟังก์ชันเพื่อกำหนดออฟเซ็ต ฟังก์ชันจะถูกเรียกด้วยอ็อบเจ็กต์ที่มีข้อมูลออฟเซ็ตเป็นอาร์กิวเมนต์แรก ฟังก์ชันต้องส่งคืนวัตถุที่มีโครงสร้างเดียวกัน องค์ประกอบทริกเกอร์โหนด DOM ถูกส่งผ่านเป็นอาร์กิวเมนต์ที่สอง สำหรับข้อมูลเพิ่มเติม โปรดดู เอกสารออฟเซ็ตของPopper.js |
fallbackPlacement | สตริง | อาร์เรย์ | 'พลิก' | อนุญาตให้ระบุตำแหน่งที่ Popper จะใช้กับทางเลือก สำหรับข้อมูลเพิ่มเติม โปรดดู เอกสารพฤติกรรมของ Popper.js |
เขตแดน | สตริง | ธาตุ | 'เลื่อนผู้ปกครอง' | ขอบเขตข้อจำกัดล้นของคำแนะนำเครื่องมือ ยอมรับค่าของ'viewport' , 'window' , 'scrollParent' , หรือการอ้างอิง HTMLElement (JavaScript เท่านั้น) สำหรับข้อมูลเพิ่มเติม โปรดดู เอกสาร preventOverflow ของPopper.js |
ฆ่าเชื้อ | บูลีน | จริง | เปิดหรือปิดการฆ่าเชื้อ หากเปิดใช้งาน'template' และ'title' ตัวเลือกต่างๆ จะถูกฆ่าเชื้อ |
whiteList | วัตถุ | ค่าเริ่มต้น | ออบเจ็กต์ที่มีแอตทริบิวต์และแท็กที่อนุญาต |
ฆ่าเชื้อFn | null | การทำงาน | โมฆะ | ที่นี่คุณสามารถจัดหาฟังก์ชันฆ่าเชื้อของคุณเองได้ สิ่งนี้มีประโยชน์หากคุณต้องการใช้ห้องสมุดเฉพาะเพื่อทำการฆ่าเชื้อ |
แอตทริบิวต์ข้อมูลสำหรับคำแนะนำเครื่องมือแต่ละรายการ
ตัวเลือกสำหรับคำแนะนำเครื่องมือแต่ละรายการสามารถระบุได้โดยใช้แอตทริบิวต์ข้อมูล ตามที่อธิบายข้างต้น
วิธีการ
วิธีการและการเปลี่ยนแบบอะซิงโครนัส
เมธอด API ทั้งหมดเป็นแบบอะซิงโครนัสและเริ่มต้นการเปลี่ยนแปลง พวกเขาจะกลับไปที่ผู้โทรทันทีที่เริ่มเปลี่ยน แต่ ก่อน ที่จะสิ้นสุด นอกจากนี้ การเรียกเมธอดบนคอมโพเนนต์การเปลี่ยนจะถูกละเว้น
$().tooltip(options)
แนบตัวจัดการคำแนะนำเครื่องมือกับคอลเล็กชันองค์ประกอบ
.tooltip('show')
แสดงคำแนะนำเครื่องมือขององค์ประกอบ กลับไปยังผู้เรียกก่อนที่จะแสดงคำแนะนำเครื่องมือจริง (กล่าวคือ ก่อนที่shown.bs.tooltip
เหตุการณ์จะเกิดขึ้น) นี่ถือเป็นการเรียกใช้ "คู่มือ" ของคำแนะนำเครื่องมือ คำแนะนำเครื่องมือที่มีชื่อความยาวเป็นศูนย์จะไม่แสดงขึ้น
.tooltip('hide')
ซ่อนคำแนะนำเครื่องมือขององค์ประกอบ กลับไปยังผู้เรียกก่อนที่คำแนะนำเครื่องมือจะถูกซ่อนจริง ๆ (กล่าวคือ ก่อนที่hidden.bs.tooltip
เหตุการณ์จะเกิดขึ้น) นี่ถือเป็นการเรียกใช้ "คู่มือ" ของคำแนะนำเครื่องมือ
.tooltip('toggle')
สลับคำแนะนำเครื่องมือขององค์ประกอบ กลับไปยังผู้เรียกก่อนที่จะแสดงหรือซ่อนคำแนะนำเครื่องมือจริง (เช่น ก่อนที่ เหตุการณ์ shown.bs.tooltip
หรือhidden.bs.tooltip
เหตุการณ์จะเกิดขึ้น) นี่ถือเป็นการเรียกใช้ "คู่มือ" ของคำแนะนำเครื่องมือ
.tooltip('dispose')
ซ่อนและทำลายคำแนะนำขององค์ประกอบ คำแนะนำเครื่องมือที่ใช้การมอบหมาย (ซึ่งสร้างขึ้นโดยใช้ตัวselector
เลือก ) ไม่สามารถทำลายทีละรายการในองค์ประกอบทริกเกอร์ที่สืบทอดได้
.tooltip('enable')
ให้ความสามารถในการแสดงคำแนะนำเครื่องมือขององค์ประกอบ คำแนะนำเครื่องมือเปิดใช้งานโดยค่าเริ่มต้น
.tooltip('disable')
ลบความสามารถในการแสดงคำแนะนำเครื่องมือขององค์ประกอบ คำแนะนำเครื่องมือจะแสดงได้ก็ต่อเมื่อเปิดใช้งานอีกครั้ง
.tooltip('toggleEnabled')
สลับความสามารถในการแสดงหรือซ่อนคำแนะนำเครื่องมือขององค์ประกอบ
.tooltip('update')
อัปเดตตำแหน่งของคำแนะนำเครื่องมือขององค์ประกอบ
กิจกรรม
ประเภทงาน | คำอธิบาย |
---|---|
show.bs.tooltip | เหตุการณ์นี้จะเริ่มทำงานทันทีเมื่อมีshow การเรียกเมธอดของอินสแตนซ์ |
แสดง.bs.tooltip | เหตุการณ์นี้เริ่มทำงานเมื่อผู้ใช้มองเห็นคำแนะนำเครื่องมือ (จะรอให้การเปลี่ยน CSS เสร็จสมบูรณ์) |
hide.bs.tooltip | เหตุการณ์นี้เริ่มทำงานทันทีเมื่อhide มีการเรียกเมธอดของอินสแตนซ์ |
hidden.bs.tooltip | เหตุการณ์นี้เริ่มทำงานเมื่อคำแนะนำเครื่องมือถูกซ่อนจากผู้ใช้เสร็จสิ้น (จะรอให้การเปลี่ยน CSS เสร็จสมบูรณ์) |
inserted.bs.tooltip | เหตุการณ์นี้เริ่มทำงานหลังจากshow.bs.tooltip เหตุการณ์เมื่อมีการเพิ่มเทมเพลตคำแนะนำเครื่องมือใน DOM |