पोपोवेर्स
आपकी साइट के किसी भी तत्व में बूटस्ट्रैप पॉपओवर जोड़ने के लिए दस्तावेज़ और उदाहरण, जैसे कि iOS में पाए जाने वाले पॉपओवर।
अवलोकन
पॉपओवर प्लगइन का उपयोग करते समय जानने योग्य बातें:
- पॉपओवर पोजिशनिंग के लिए थर्ड पार्टी लाइब्रेरी पॉपर पर भरोसा करते हैं। आपको बूटस्ट्रैप.जेएस से पहले popper.min.js को शामिल करना होगा या पॉपओवर के काम करने के लिए
bootstrap.bundle.min.js
/bootstrap.bundle.js
जिसमें पॉपर शामिल है, का उपयोग करना होगा! - पॉपओवर को निर्भरता के रूप में टूलटिप प्लगइन की आवश्यकता होती है।
- पॉपओवर प्रदर्शन कारणों से ऑप्ट-इन होते हैं, इसलिए आपको उन्हें स्वयं प्रारंभ करना होगा ।
- शून्य-लंबाई
title
औरcontent
मान कभी भी पॉपओवर नहीं दिखाएंगे। container: 'body'
अधिक जटिल घटकों (जैसे हमारे इनपुट समूह, बटन समूह, आदि) में समस्याओं को प्रस्तुत करने से बचने के लिए निर्दिष्ट करें ।- छिपे हुए तत्वों पर पॉपओवर ट्रिगर करने से काम नहीं चलेगा।
- के लिए पॉपओवर
.disabled
याdisabled
तत्वों को एक रैपर तत्व पर ट्रिगर किया जाना चाहिए। - जब कई पंक्तियों में लपेटने वाले एंकर से ट्रिगर किया जाता है, तो पॉपओवर एंकर की समग्र चौड़ाई के बीच केंद्रित होंगे। इस व्यवहार से बचने के लिए
.text-nowrap
अपने पर प्रयोग करें ।<a>
- पॉपओवर को उनके संबंधित तत्वों को DOM से निकालने से पहले छिपाया जाना चाहिए।
- एक छाया डोम के अंदर एक तत्व के लिए धन्यवाद पॉपओवर को ट्रिगर किया जा सकता है।
prefers-reduced-motion
मीडिया क्वेरी पर निर्भर है। हमारे एक्सेसिबिलिटी डॉक्यूमेंटेशन का रिड्यूस्ड मोशन सेक्शन देखें
।
कुछ उदाहरणों के साथ पॉपओवर कैसे काम करते हैं, यह देखने के लिए पढ़ते रहें।
उदाहरण: हर जगह पॉपओवर सक्षम करें
किसी पृष्ठ पर सभी पॉपओवर प्रारंभ करने का एक तरीका यह होगा कि आप उन्हें उनकी data-bs-toggle
विशेषता के आधार पर चुनें:
var popoverTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="popover"]'))
var popoverList = popoverTriggerList.map(function (popoverTriggerEl) {
return new bootstrap.Popover(popoverTriggerEl)
})
उदाहरण: container
विकल्प का उपयोग करना
जब आपके पास मूल तत्व पर कुछ शैलियाँ हैं जो पॉपओवर में बाधा डालती हैं, तो आप एक कस्टम निर्दिष्ट करना चाहेंगे container
ताकि पॉपओवर का HTML उस तत्व के बजाय दिखाई दे।
var popover = new bootstrap.Popover(document.querySelector('.example-popover'), {
container: 'body'
})
उदाहरण
<button type="button" class="btn btn-lg btn-danger" data-bs-toggle="popover" title="Popover title" data-bs-content="And here's some amazing content. It's very engaging. Right?">Click to toggle popover</button>
चार दिशाएं
चार विकल्प उपलब्ध हैं: ऊपर, दाएँ, नीचे और बाएँ संरेखित। आरटीएल में बूटस्ट्रैप का उपयोग करते समय दिशाओं को प्रतिबिंबित किया जाता है।
<button type="button" class="btn btn-secondary" data-bs-container="body" data-bs-toggle="popover" data-bs-placement="top" data-bs-content="Top popover">
Popover on top
</button>
<button type="button" class="btn btn-secondary" data-bs-container="body" data-bs-toggle="popover" data-bs-placement="right" data-bs-content="Right popover">
Popover on right
</button>
<button type="button" class="btn btn-secondary" data-bs-container="body" data-bs-toggle="popover" data-bs-placement="bottom" data-bs-content="Bottom popover">
Popover on bottom
</button>
<button type="button" class="btn btn-secondary" data-bs-container="body" data-bs-toggle="popover" data-bs-placement="left" data-bs-content="Left popover">
Popover on left
</button>
अगले क्लिक पर खारिज करें
focus
उपयोगकर्ता के अगले क्लिक पर टॉगल एलिमेंट के अलावा किसी दूसरे एलीमेंट पर पॉपओवर को खारिज करने के लिए ट्रिगर का इस्तेमाल करें .
ख़ारिज-पर-अगले-क्लिक के लिए आवश्यक विशिष्ट मार्कअप
उचित क्रॉस-ब्राउज़र और क्रॉस-प्लेटफ़ॉर्म व्यवहार के लिए, आपको टैग का उपयोग करना चाहिए, <a>
टैग का नहीं ,<button>
और आपको एक tabindex
विशेषता भी शामिल करनी चाहिए।
<a tabindex="0" class="btn btn-lg btn-danger" role="button" data-bs-toggle="popover" data-bs-trigger="focus" title="Dismissible popover" data-bs-content="And here's some amazing content. It's very engaging. Right?">Dismissible popover</a>
var popover = new bootstrap.Popover(document.querySelector('.popover-dismiss'), {
trigger: 'focus'
})
अक्षम तत्व
विशेषता वाले तत्व disabled
इंटरैक्टिव नहीं हैं, जिसका अर्थ है कि उपयोगकर्ता पॉपओवर (या टूलटिप) ट्रिगर करने के लिए उन्हें होवर या क्लिक नहीं कर सकते हैं। वर्कअराउंड के रूप में, आप एक रैपर से पॉपओवर को ट्रिगर करना चाहेंगे <div>
या <span>
आदर्श रूप से कीबोर्ड-फोकस करने योग्य का उपयोग कर सकते tabindex="0"
हैं।
अक्षम पॉपओवर ट्रिगर के लिए, आप यह भी पसंद कर सकते हैं data-bs-trigger="hover focus"
कि पॉपओवर आपके उपयोगकर्ताओं को तत्काल दृश्य प्रतिक्रिया के रूप में दिखाई दे क्योंकि वे अक्षम तत्व पर क्लिक करने की अपेक्षा नहीं कर सकते हैं।
<span class="d-inline-block" tabindex="0" data-bs-toggle="popover" data-bs-trigger="hover focus" data-bs-content="Disabled popover">
<button class="btn btn-primary" type="button" disabled>Disabled button</button>
</span>
सास
चर
$popover-font-size: $font-size-sm;
$popover-bg: $white;
$popover-max-width: 276px;
$popover-border-width: $border-width;
$popover-border-color: rgba($black, .2);
$popover-border-radius: $border-radius-lg;
$popover-inner-border-radius: subtract($popover-border-radius, $popover-border-width);
$popover-box-shadow: $box-shadow;
$popover-header-bg: shade-color($popover-bg, 6%);
$popover-header-color: $headings-color;
$popover-header-padding-y: .5rem;
$popover-header-padding-x: $spacer;
$popover-body-color: $body-color;
$popover-body-padding-y: $spacer;
$popover-body-padding-x: $spacer;
$popover-arrow-width: 1rem;
$popover-arrow-height: .5rem;
$popover-arrow-color: $popover-bg;
$popover-arrow-outer-color: fade-in($popover-border-color, .05);
प्रयोग
जावास्क्रिप्ट के माध्यम से पॉपओवर सक्षम करें:
var exampleEl = document.getElementById('example')
var popover = new bootstrap.Popover(exampleEl, options)
पॉपओवर को कीबोर्ड और सहायक तकनीकी उपयोगकर्ताओं के लिए कारगर बनाना
कीबोर्ड उपयोगकर्ताओं को आपके पॉपओवर सक्रिय करने की अनुमति देने के लिए, आपको उन्हें केवल HTML तत्वों में जोड़ना चाहिए जो परंपरागत रूप से कीबोर्ड-फ़ोकस करने योग्य और इंटरैक्टिव (जैसे लिंक या फॉर्म नियंत्रण) हैं। यद्यपि मनमाने ढंग से HTML तत्वों (जैसे <span>
s) को विशेषता जोड़कर ध्यान देने योग्य बनाया जा सकता है tabindex="0"
, यह कीबोर्ड उपयोगकर्ताओं के लिए गैर-संवादात्मक तत्वों पर संभावित रूप से कष्टप्रद और भ्रमित करने वाला टैब स्टॉप जोड़ देगा, और अधिकांश सहायक प्रौद्योगिकियां वर्तमान में इस स्थिति में पॉपओवर की सामग्री की घोषणा नहीं करती हैं। . इसके अतिरिक्त, केवल अपने पॉपओवर के लिए ट्रिगर के रूप में भरोसा न hover
करें, क्योंकि इससे उन्हें कीबोर्ड उपयोगकर्ताओं के लिए ट्रिगर करना असंभव हो जाएगा।
जब आप विकल्प के साथ पॉपओवर में समृद्ध, संरचित HTML सम्मिलित कर सकते हैं html
, तो हम दृढ़ता से अनुशंसा करते हैं कि आप अत्यधिक मात्रा में सामग्री जोड़ने से बचें। aria-describedby
पॉपओवर वर्तमान में जिस तरह से काम करते हैं, वह यह है कि, एक बार प्रदर्शित होने के बाद, उनकी सामग्री विशेषता के साथ ट्रिगर तत्व से जुड़ी होती है । परिणामस्वरूप, पॉपओवर की संपूर्ण सामग्री की घोषणा सहायक प्रौद्योगिकी उपयोगकर्ताओं के लिए एक लंबी, निर्बाध स्ट्रीम के रूप में की जाएगी।
इसके अतिरिक्त, जबकि आपके पॉपओवर में इंटरैक्टिव नियंत्रण (जैसे प्रपत्र तत्व या लिंक) शामिल करना संभव है (इन तत्वों को allowList
अनुमत विशेषताओं और टैग में जोड़कर), ध्यान रखें कि वर्तमान में पॉपओवर कीबोर्ड फ़ोकस ऑर्डर का प्रबंधन नहीं करता है। जब कोई कीबोर्ड उपयोगकर्ता पॉपओवर खोलता है, तो ट्रिगरिंग तत्व पर ध्यान केंद्रित रहता है, और चूंकि पॉपओवर आमतौर पर दस्तावेज़ की संरचना में ट्रिगर का तुरंत पालन नहीं करता है, इस बात की कोई गारंटी नहीं है कि आगे बढ़ना/दबानाTABकीबोर्ड उपयोगकर्ता को पॉपओवर में ही ले जाएगा। संक्षेप में, बस एक पॉपओवर में इंटरैक्टिव नियंत्रण जोड़ने से इन नियंत्रणों को कीबोर्ड उपयोगकर्ताओं और सहायक तकनीकों के उपयोगकर्ताओं के लिए पहुंच से बाहर/अनुपयोगी बनाने की संभावना है, या कम से कम एक अतार्किक समग्र फोकस ऑर्डर के लिए बनाते हैं। इन मामलों में, इसके बजाय एक मोडल संवाद का उपयोग करने पर विचार करें।
विकल्प
विकल्प डेटा विशेषताओं या जावास्क्रिप्ट के माध्यम से पारित किए जा सकते हैं। डेटा विशेषताओं के लिए, विकल्प नाम को में जोड़ें data-bs-
, जैसा कि में है data-bs-animation=""
। डेटा विशेषताओं के माध्यम से विकल्पों को पास करते समय विकल्प नाम के केस प्रकार को कैमलकेस से कबाब-केस में बदलना सुनिश्चित करें। उदाहरण के लिए, उपयोग करने के बजाय data-bs-customClass="beautifier"
, उपयोग करें data-bs-custom-class="beautifier"
।
sanitize
,
sanitizeFn
, और
विकल्पों की आपूर्ति नहीं की जा सकती है।allowList
नाम | टाइप | चूक | विवरण |
---|---|---|---|
animation |
बूलियन | true |
पॉपओवर के लिए CSS फ़ेड ट्रांज़िशन लागू करें |
container |
स्ट्रिंग | तत्व | असत्य | false |
पॉपओवर को एक विशिष्ट तत्व में जोड़ता है। उदाहरण |
content |
स्ट्रिंग | तत्व | समारोह | '' |
डिफ़ॉल्ट सामग्री मान यदि यदि कोई फ़ंक्शन दिया जाता है, तो इसे इसके |
delay |
संख्या | वस्तु | 0 |
पॉपओवर दिखाने और छिपाने में देरी (एमएस) - मैन्युअल ट्रिगर प्रकार पर लागू नहीं होती यदि एक नंबर की आपूर्ति की जाती है, तो देरी को छिपाने/दिखाने दोनों पर लागू किया जाता है वस्तु संरचना है: |
html |
बूलियन | false |
पॉपओवर में HTML डालें। यदि गलत है, तो innerText संपत्ति का उपयोग DOM में सामग्री डालने के लिए किया जाएगा। यदि आप XSS हमलों के बारे में चिंतित हैं तो टेक्स्ट का उपयोग करें। |
placement |
स्ट्रिंग | समारोह | 'right' |
पॉपओवर की स्थिति कैसे बनाएं - ऑटो | शीर्ष | नीचे | बाएं | सही। जब किसी फ़ंक्शन का उपयोग प्लेसमेंट को निर्धारित करने के लिए किया जाता है, तो इसे पॉपओवर DOM नोड को इसके पहले तर्क के रूप में और ट्रिगर करने वाले तत्व DOM नोड को इसके दूसरे के रूप में कहा जाता है। |
selector |
स्ट्रिंग | असत्य | false |
यदि कोई चयनकर्ता प्रदान किया जाता है, तो पॉपओवर ऑब्जेक्ट निर्दिष्ट लक्ष्यों को सौंपे जाएंगे। व्यवहार में, इसका उपयोग गतिशील HTML सामग्री को पॉपओवर जोड़ने के लिए सक्षम करने के लिए किया जाता है। इसे और एक सूचनात्मक उदाहरण देखें । |
template |
डोरी | '<div class="popover" role="tooltip"><div class="popover-arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>' |
पॉपओवर बनाते समय उपयोग करने के लिए HTML को आधार बनाएं। पॉपओवर का पॉपओवर का
सबसे बाहरी आवरण तत्व में |
title |
स्ट्रिंग | तत्व | समारोह | '' |
डिफ़ॉल्ट शीर्षक मान यदि यदि कोई फ़ंक्शन दिया जाता है, तो इसे इसके |
trigger |
डोरी | 'click' |
पॉपओवर कैसे ट्रिगर होता है - क्लिक करें | होवर | फोकस | नियमावली। आप कई ट्रिगर पास कर सकते हैं; उन्हें एक स्थान से अलग करें। manual किसी अन्य ट्रिगर के साथ जोड़ा नहीं जा सकता। |
fallbackPlacements |
सरणी | ['top', 'right', 'bottom', 'left'] |
सरणी में प्लेसमेंट की सूची प्रदान करके (वरीयता के क्रम में) फ़ॉलबैक प्लेसमेंट को परिभाषित करें। अधिक जानकारी के लिए पॉपर के व्यवहार दस्तावेज़ देखें |
boundary |
स्ट्रिंग | तत्व | 'clippingParents' |
पॉपओवर की ओवरफ्लो बाधा सीमा (केवल पॉपर के रोकथाम ओवरफ्लो संशोधक पर लागू होती है)। डिफ़ॉल्ट रूप से यह 'clippingParents' HTMLElement संदर्भ (केवल जावास्क्रिप्ट के माध्यम से) स्वीकार कर सकता है और स्वीकार कर सकता है। अधिक जानकारी के लिए पॉपर का डिटेक्ट ओवरफ्लो डॉक्स देखें । |
customClass |
स्ट्रिंग | समारोह | '' |
दिखाए जाने पर पॉपओवर में कक्षाएं जोड़ें। ध्यान दें कि इन वर्गों को टेम्पलेट में निर्दिष्ट किसी भी वर्ग के अतिरिक्त जोड़ा जाएगा। अनेक वर्ग जोड़ने के लिए, उन्हें रिक्त स्थान से अलग करें: आप एक फ़ंक्शन भी पास कर सकते हैं जो अतिरिक्त वर्ग नामों वाली एक स्ट्रिंग को वापस कर दे। |
sanitize |
बूलियन | true |
स्वच्छता को सक्षम या अक्षम करें। यदि सक्रिय है 'template' , 'content' और 'title' विकल्पों को साफ किया जाएगा। हमारे जावास्क्रिप्ट दस्तावेज़ में सैनिटाइज़र अनुभाग देखें । |
allowList |
वस्तु | डिफ़ॉल्ट मान | ऑब्जेक्ट जिसमें अनुमत विशेषताएँ और टैग शामिल हैं |
sanitizeFn |
शून्य | समारोह | null |
यहां आप अपना खुद का सैनिटाइज फंक्शन सप्लाई कर सकते हैं। यह उपयोगी हो सकता है यदि आप स्वच्छता के लिए एक समर्पित पुस्तकालय का उपयोग करना पसंद करते हैं। |
offset |
सरणी | स्ट्रिंग | समारोह | [0, 8] |
अपने लक्ष्य के सापेक्ष आबादी की भरपाई। आप अल्पविराम से अलग किए गए मानों के साथ डेटा विशेषताओं में एक स्ट्रिंग पास कर सकते हैं जैसे: जब ऑफ़सेट को निर्धारित करने के लिए किसी फ़ंक्शन का उपयोग किया जाता है, तो इसे पॉपर प्लेसमेंट, संदर्भ, और पॉपर रेक्ट्स वाले ऑब्जेक्ट के साथ इसके पहले तर्क के रूप में कहा जाता है। ट्रिगरिंग तत्व DOM नोड को दूसरे तर्क के रूप में पास किया जाता है। फ़ंक्शन को दो संख्याओं के साथ एक सरणी वापस करनी होगी: . अधिक जानकारी के लिए पॉपर ऑफ़सेट डॉक्स देखें । |
popperConfig |
शून्य | वस्तु | समारोह | null |
बूटस्ट्रैप के डिफ़ॉल्ट पॉपर कॉन्फिगरेशन को बदलने के लिए, पॉपर का कॉन्फिगरेशन देखें । जब पॉपर कॉन्फ़िगरेशन बनाने के लिए फ़ंक्शन का उपयोग किया जाता है, तो इसे उस ऑब्जेक्ट के साथ बुलाया जाता है जिसमें बूटस्ट्रैप का डिफ़ॉल्ट पॉपर कॉन्फ़िगरेशन होता है। यह आपको अपने स्वयं के कॉन्फ़िगरेशन के साथ डिफ़ॉल्ट का उपयोग और विलय करने में मदद करता है। फ़ंक्शन को पॉपर के लिए कॉन्फ़िगरेशन ऑब्जेक्ट वापस करना होगा। |
व्यक्तिगत पॉपओवर के लिए डेटा विशेषताएँ
अलग-अलग पॉपओवर के विकल्प वैकल्पिक रूप से डेटा विशेषताओं के उपयोग के माध्यम से निर्दिष्ट किए जा सकते हैं, जैसा कि ऊपर बताया गया है।
के साथ फ़ंक्शन का उपयोग करनाpopperConfig
var popover = new bootstrap.Popover(element, {
popperConfig: function (defaultBsPopperConfig) {
// var newPopperConfig = {...}
// use defaultBsPopperConfig if needed...
// return newPopperConfig
}
})
तरीकों
अतुल्यकालिक तरीके और संक्रमण
सभी एपीआई विधियाँ अतुल्यकालिक हैं और एक संक्रमण शुरू करती हैं । ट्रांज़िशन शुरू होते ही वे कॉलर के पास वापस आ जाते हैं लेकिन उसके समाप्त होने से पहले । इसके अलावा, एक संक्रमण घटक पर एक विधि कॉल को नजरअंदाज कर दिया जाएगा ।
प्रदर्शन
किसी तत्व के पॉपओवर को प्रकट करता है। पॉपओवर से पहले कॉलर को रिटर्न वास्तव में दिखाया गया है (यानी shown.bs.popover
घटना होने से पहले)। इसे पॉपओवर का "मैनुअल" ट्रिगर माना जाता है। पॉपओवर जिनका शीर्षक और सामग्री दोनों शून्य-लंबाई हैं, कभी प्रदर्शित नहीं होते हैं।
myPopover.show()
छिपाना
किसी तत्व का पॉपओवर छुपाता है। पॉपओवर से पहले कॉलर को रिटर्न वास्तव में छुपाया गया है (यानी hidden.bs.popover
घटना होने से पहले)। इसे पॉपओवर का "मैनुअल" ट्रिगर माना जाता है।
myPopover.hide()
टॉगल
किसी तत्व के पॉपओवर को टॉगल करता है। पॉपओवर से पहले कॉलर को रिटर्न वास्तव में दिखाया या छिपाया गया है (अर्थात घटना shown.bs.popover
या hidden.bs.popover
घटना होने से पहले)। इसे पॉपओवर का "मैनुअल" ट्रिगर माना जाता है।
myPopover.toggle()
निपटाने
किसी तत्व के पॉपओवर को छुपाता और नष्ट करता है (DOM तत्व पर संग्रहीत डेटा को हटाता है)। डेलिगेशन का उपयोग करने वाले पॉपओवर (जो विकल्प का उपयोग करकेselector
बनाए गए हैं ) वंशज ट्रिगर तत्वों पर व्यक्तिगत रूप से नष्ट नहीं किए जा सकते हैं।
myPopover.dispose()
सक्षम करना
किसी तत्व के पॉपओवर को दिखाने की क्षमता देता है। पॉपओवर डिफ़ॉल्ट रूप से सक्षम होते हैं।
myPopover.enable()
बंद करना
किसी तत्व के पॉपओवर को दिखाने की क्षमता को हटा देता है। पॉपओवर केवल तभी दिखाया जा सकेगा जब इसे फिर से सक्षम किया गया हो।
myPopover.disable()
टॉगल सक्षम
किसी तत्व के पॉपओवर को दिखाने या छिपाने की क्षमता को टॉगल करता है।
myPopover.toggleEnabled()
अपडेट करें
किसी तत्व के पॉपओवर की स्थिति को अपडेट करता है।
myPopover.update()
दृष्टांत लो
स्टेटिक विधि जो आपको DOM तत्व से जुड़े पॉपओवर इंस्टेंस को प्राप्त करने की अनुमति देती है
var exampleTriggerEl = document.getElementById('example')
var popover = bootstrap.Popover.getInstance(exampleTriggerEl) // Returns a Bootstrap popover instance
getOrCreateInstance
स्टेटिक विधि जो आपको DOM तत्व से जुड़े पॉपओवर इंस्टेंस को प्राप्त करने की अनुमति देती है, या यदि इसे प्रारंभ नहीं किया गया था तो एक नया बनाएं
var exampleTriggerEl = document.getElementById('example')
var popover = bootstrap.Popover.getOrCreateInstance(exampleTriggerEl) // Returns a Bootstrap popover instance
आयोजन
घटना प्रकार | विवरण |
---|---|
शो.बीएस.पॉपओवर | show इंस्टेंस विधि को कॉल करने पर यह घटना तुरंत सक्रिय हो जाती है। |
दिखाया गया.bs.popover | यह घटना तब सक्रिय होती है जब पॉपओवर उपयोगकर्ता को दिखाई देता है (सीएसएस ट्रांज़िशन पूरा होने की प्रतीक्षा करेगा)। |
छिपाना.bs.popover | hide इंस्टेंस विधि को कॉल किए जाने पर इस घटना को तुरंत निकाल दिया जाता है। |
हिडन.बीएस.पॉपओवर | यह घटना तब सक्रिय हो जाती है जब पॉपओवर उपयोगकर्ता से छिपा हुआ समाप्त हो जाता है (सीएसएस संक्रमणों के पूरा होने की प्रतीक्षा करेगा)। |
डाला.bs.popover | इस घटना को उस show.bs.popover घटना के बाद सक्रिय किया जाता है जब पॉपओवर टेम्पलेट को DOM में जोड़ा जाता है। |
var myPopoverTrigger = document.getElementById('myPopover')
myPopoverTrigger.addEventListener('hidden.bs.popover', function () {
// do something...
})