ऑफकैनवास
कुछ कक्षाओं और हमारे जावास्क्रिप्ट प्लगइन के साथ नेविगेशन, शॉपिंग कार्ट और बहुत कुछ के लिए अपने प्रोजेक्ट में छिपे हुए साइडबार बनाएं।
यह काम किस प्रकार करता है
ऑफकैनवास एक साइडबार घटक है जिसे व्यूपोर्ट के बाएं, दाएं या निचले किनारे से प्रदर्शित होने के लिए जावास्क्रिप्ट के माध्यम से टॉगल किया जा सकता है। बटन या एंकर का उपयोग ट्रिगर के रूप में किया जाता है जो आपके द्वारा टॉगल किए जाने वाले विशिष्ट तत्वों से जुड़े होते हैं, और dataविशेषताओं का उपयोग हमारी जावास्क्रिप्ट को लागू करने के लिए किया जाता है।
- ऑफकैनवास कुछ समान जावास्क्रिप्ट कोड को मोडल के रूप में साझा करता है। वैचारिक रूप से, वे काफी समान हैं, लेकिन वे अलग प्लगइन्स हैं।
- इसी तरह, ऑफकैनवास की शैलियों और आयामों के लिए कुछ स्रोत सैस चर मोडल के चर से विरासत में मिले हैं।
- दिखाए जाने पर, ऑफ़कैनवास में एक डिफ़ॉल्ट बैकड्रॉप शामिल होता है जिसे ऑफ़कैनवास को छिपाने के लिए क्लिक किया जा सकता है।
- मोडल के समान, एक समय में केवल एक ऑफकैनवास दिखाया जा सकता है।
सचेत! यह देखते हुए कि CSS एनिमेशन को कैसे संभालता है, आप marginया translateकिसी .offcanvasतत्व का उपयोग नहीं कर सकते। इसके बजाय, कक्षा को एक स्वतंत्र रैपिंग तत्व के रूप में उपयोग करें।
prefers-reduced-motionमीडिया क्वेरी पर निर्भर है। हमारे एक्सेसिबिलिटी डॉक्यूमेंटेशन का रिड्यूस्ड मोशन सेक्शन देखें
।
उदाहरण
ऑफकैनवास घटक
नीचे एक ऑफकैनवास उदाहरण दिया गया है जो डिफ़ॉल्ट रूप से ( .showon के माध्यम से .offcanvas) दिखाया गया है। ऑफकैनवास में क्लोज बटन वाले हेडर के लिए सपोर्ट और कुछ शुरुआती के लिए वैकल्पिक बॉडी क्लास शामिल है padding। हमारा सुझाव है कि आप जब भी संभव हो, खारिज करने की कार्रवाइयों के साथ ऑफकैनवास हेडर शामिल करें, या एक स्पष्ट खारिज करने की कार्रवाई प्रदान करें।
ऑफकैनवास
<div class="offcanvas offcanvas-start" tabindex="-1" id="offcanvas" aria-labelledby="offcanvasLabel">
<div class="offcanvas-header">
<h5 class="offcanvas-title" id="offcanvasLabel">Offcanvas</h5>
<button type="button" class="btn-close text-reset" data-bs-dismiss="offcanvas" aria-label="Close"></button>
</div>
<div class="offcanvas-body">
Content for the offcanvas goes here. You can place just about any Bootstrap component or custom elements here.
</div>
</div>
लाइव डेमो
जावास्क्रिप्ट के माध्यम से एक ऑफकैनवास तत्व को दिखाने और छिपाने के लिए नीचे दिए गए बटनों का उपयोग करें जो .showकक्षा के साथ एक तत्व पर वर्ग को टॉगल करता है .offcanvas।
.offcanvasसामग्री छुपाता है (डिफ़ॉल्ट).offcanvas.showसामग्री दिखाता है
आप विशेषता वाले लिंक hrefया विशेषता वाले बटन का उपयोग कर सकते हैं data-bs-target। दोनों ही मामलों में, की data-bs-toggle="offcanvas"आवश्यकता है।
ऑफकैनवास
<a class="btn btn-primary" data-bs-toggle="offcanvas" href="#offcanvasExample" role="button" aria-controls="offcanvasExample">
Link with href
</a>
<button class="btn btn-primary" type="button" data-bs-toggle="offcanvas" data-bs-target="#offcanvasExample" aria-controls="offcanvasExample">
Button with data-bs-target
</button>
<div class="offcanvas offcanvas-start" tabindex="-1" id="offcanvasExample" aria-labelledby="offcanvasExampleLabel">
<div class="offcanvas-header">
<h5 class="offcanvas-title" id="offcanvasExampleLabel">Offcanvas</h5>
<button type="button" class="btn-close text-reset" data-bs-dismiss="offcanvas" aria-label="Close"></button>
</div>
<div class="offcanvas-body">
<div>
Some text as placeholder. In real life you can have the elements you have chosen. Like, text, images, lists, etc.
</div>
<div class="dropdown mt-3">
<button class="btn btn-secondary dropdown-toggle" type="button" id="dropdownMenuButton" data-bs-toggle="dropdown">
Dropdown button
</button>
<ul class="dropdown-menu" aria-labelledby="dropdownMenuButton">
<li><a class="dropdown-item" href="#">Action</a></li>
<li><a class="dropdown-item" href="#">Another action</a></li>
<li><a class="dropdown-item" href="#">Something else here</a></li>
</ul>
</div>
</div>
</div>
प्लेसमेंट
ऑफकैनवास घटकों के लिए कोई डिफ़ॉल्ट प्लेसमेंट नहीं है, इसलिए आपको नीचे एक संशोधक वर्ग जोड़ना होगा;
.offcanvas-startऑफकैनवास को व्यूपोर्ट के बाईं ओर रखता है (ऊपर दिखाया गया है).offcanvas-endऑफकैनवास को व्यूपोर्ट के दाईं ओर रखता है.offcanvas-topऑफकैनवास को व्यूपोर्ट के शीर्ष पर रखता है.offcanvas-bottomऑफकैनवास को व्यूपोर्ट के तल पर रखता है
नीचे दिए गए ऊपर, दाएं और नीचे के उदाहरणों को आज़माएं।
ऑफकैनवास टॉप
<button class="btn btn-primary" type="button" data-bs-toggle="offcanvas" data-bs-target="#offcanvasTop" aria-controls="offcanvasTop">Toggle top offcanvas</button>
<div class="offcanvas offcanvas-top" tabindex="-1" id="offcanvasTop" aria-labelledby="offcanvasTopLabel">
<div class="offcanvas-header">
<h5 id="offcanvasTopLabel">Offcanvas top</h5>
<button type="button" class="btn-close text-reset" data-bs-dismiss="offcanvas" aria-label="Close"></button>
</div>
<div class="offcanvas-body">
...
</div>
</div>
ऑफकैनवास राइट
<button class="btn btn-primary" type="button" data-bs-toggle="offcanvas" data-bs-target="#offcanvasRight" aria-controls="offcanvasRight">Toggle right offcanvas</button>
<div class="offcanvas offcanvas-end" tabindex="-1" id="offcanvasRight" aria-labelledby="offcanvasRightLabel">
<div class="offcanvas-header">
<h5 id="offcanvasRightLabel">Offcanvas right</h5>
<button type="button" class="btn-close text-reset" data-bs-dismiss="offcanvas" aria-label="Close"></button>
</div>
<div class="offcanvas-body">
...
</div>
</div>
ऑफकैनवास नीचे
<button class="btn btn-primary" type="button" data-bs-toggle="offcanvas" data-bs-target="#offcanvasBottom" aria-controls="offcanvasBottom">Toggle bottom offcanvas</button>
<div class="offcanvas offcanvas-bottom" tabindex="-1" id="offcanvasBottom" aria-labelledby="offcanvasBottomLabel">
<div class="offcanvas-header">
<h5 class="offcanvas-title" id="offcanvasBottomLabel">Offcanvas bottom</h5>
<button type="button" class="btn-close text-reset" data-bs-dismiss="offcanvas" aria-label="Close"></button>
</div>
<div class="offcanvas-body small">
...
</div>
</div>
पृष्ठभूमि
<body>जब कैनवास और उसकी पृष्ठभूमि दिखाई देती है , तो तत्व को स्क्रॉल करना अक्षम हो जाता है। स्क्रॉलिंग को टॉगल करने और बैकड्रॉप को टॉगल करने के लिए data-bs-scrollविशेषता का उपयोग करें ।<body>data-bs-backdrop
स्क्रॉलिंग के साथ रंगीन
इस विकल्प को क्रिया में देखने के लिए शेष पृष्ठ को स्क्रॉल करने का प्रयास करें।
पृष्ठभूमि के साथ ऑफकैनवास
.....
स्क्रॉलिंग के साथ बैकड्रॉप्ड
इस विकल्प को क्रिया में देखने के लिए शेष पृष्ठ को स्क्रॉल करने का प्रयास करें।
<button class="btn btn-primary" type="button" data-bs-toggle="offcanvas" data-bs-target="#offcanvasScrolling" aria-controls="offcanvasScrolling">Enable body scrolling</button>
<button class="btn btn-primary" type="button" data-bs-toggle="offcanvas" data-bs-target="#offcanvasWithBackdrop" aria-controls="offcanvasWithBackdrop">Enable backdrop (default)</button>
<button class="btn btn-primary" type="button" data-bs-toggle="offcanvas" data-bs-target="#offcanvasWithBothOptions" aria-controls="offcanvasWithBothOptions">Enable both scrolling & backdrop</button>
<div class="offcanvas offcanvas-start" data-bs-scroll="true" data-bs-backdrop="false" tabindex="-1" id="offcanvasScrolling" aria-labelledby="offcanvasScrollingLabel">
<div class="offcanvas-header">
<h5 class="offcanvas-title" id="offcanvasScrollingLabel">Colored with scrolling</h5>
<button type="button" class="btn-close text-reset" data-bs-dismiss="offcanvas" aria-label="Close"></button>
</div>
<div class="offcanvas-body">
<p>Try scrolling the rest of the page to see this option in action.</p>
</div>
</div>
<div class="offcanvas offcanvas-start" tabindex="-1" id="offcanvasWithBackdrop" aria-labelledby="offcanvasWithBackdropLabel">
<div class="offcanvas-header">
<h5 class="offcanvas-title" id="offcanvasWithBackdropLabel">Offcanvas with backdrop</h5>
<button type="button" class="btn-close text-reset" data-bs-dismiss="offcanvas" aria-label="Close"></button>
</div>
<div class="offcanvas-body">
<p>.....</p>
</div>
</div>
<div class="offcanvas offcanvas-start" data-bs-scroll="true" tabindex="-1" id="offcanvasWithBothOptions" aria-labelledby="offcanvasWithBothOptionsLabel">
<div class="offcanvas-header">
<h5 class="offcanvas-title" id="offcanvasWithBothOptionsLabel">Backdroped with scrolling</h5>
<button type="button" class="btn-close text-reset" data-bs-dismiss="offcanvas" aria-label="Close"></button>
</div>
<div class="offcanvas-body">
<p>Try scrolling the rest of the page to see this option in action.</p>
</div>
</div>
सरल उपयोग
चूंकि ऑफकैनवास पैनल अवधारणात्मक रूप से एक मोडल डायलॉग है, aria-labelledby="..."इसलिए ऑफकैनवास शीर्षक- को जोड़ना सुनिश्चित करें .offcanvas। ध्यान दें कि आपको जोड़ने की आवश्यकता नहीं है role="dialog"क्योंकि हम इसे पहले ही जावास्क्रिप्ट के माध्यम से जोड़ चुके हैं।
सास
चर
$offcanvas-padding-y: $modal-inner-padding;
$offcanvas-padding-x: $modal-inner-padding;
$offcanvas-horizontal-width: 400px;
$offcanvas-vertical-height: 30vh;
$offcanvas-transition-duration: .3s;
$offcanvas-border-color: $modal-content-border-color;
$offcanvas-border-width: $modal-content-border-width;
$offcanvas-title-line-height: $modal-title-line-height;
$offcanvas-bg-color: $modal-content-bg;
$offcanvas-color: $modal-content-color;
$offcanvas-box-shadow: $modal-content-box-shadow-xs;
प्रयोग
भारी भारोत्तोलन को संभालने के लिए ऑफकैनवास प्लगइन कुछ वर्गों और विशेषताओं का उपयोग करता है:
.offcanvasसामग्री छुपाता है.offcanvas.showसामग्री दिखाता है.offcanvas-startऑफ़कैनवास को बाईं ओर छुपाता है.offcanvas-endऑफ़कैनवास को दाईं ओर छुपाता है.offcanvas-bottomकैनवास को तल पर छुपाता है
विशेषता के साथ खारिज करें बटन जोड़ें data-bs-dismiss="offcanvas", जो JavaScript कार्यक्षमता को ट्रिगर करता है। <button>सभी उपकरणों पर उचित व्यवहार के लिए इसके साथ तत्व का उपयोग करना सुनिश्चित करें ।
डेटा विशेषताओं के माध्यम से
एक ऑफकैनवास तत्व के नियंत्रण को स्वचालित रूप से असाइन करने के लिए तत्व में जोड़ें data-bs-toggle="offcanvas"और a data-bs-targetया जोड़ें। ऑफकैनवास को लागू करने के लिए विशेषता एक सीएसएस चयनकर्ता को स्वीकार करती है href। कक्षा को ऑफकैनवास तत्व में data-bs-targetजोड़ना सुनिश्चित करें । offcanvasयदि आप इसे डिफ़ॉल्ट रूप से खोलना चाहते हैं, तो अतिरिक्त वर्ग जोड़ें show।
जावास्क्रिप्ट के माध्यम से
इसके साथ मैन्युअल रूप से सक्षम करें:
var offcanvasElementList = [].slice.call(document.querySelectorAll('.offcanvas'))
var offcanvasList = offcanvasElementList.map(function (offcanvasEl) {
return new bootstrap.Offcanvas(offcanvasEl)
})
विकल्प
विकल्प डेटा विशेषताओं या जावास्क्रिप्ट के माध्यम से पारित किए जा सकते हैं। डेटा विशेषताओं के लिए, विकल्प नाम को में जोड़ें data-bs-, जैसा कि में है data-bs-backdrop=""।
| नाम | टाइप | चूक | विवरण |
|---|---|---|---|
backdrop |
बूलियन | true |
ऑफकैनवास खुला होने पर शरीर पर पृष्ठभूमि लागू करें |
keyboard |
बूलियन | true |
एस्केप कुंजी दबाए जाने पर ऑफकैनवास बंद कर देता है |
scroll |
बूलियन | false |
ऑफकैनवास खुला होने पर बॉडी स्क्रॉलिंग की अनुमति दें |
तरीकों
अतुल्यकालिक तरीके और संक्रमण
सभी एपीआई विधियाँ अतुल्यकालिक हैं और एक संक्रमण शुरू करती हैं । ट्रांज़िशन शुरू होते ही वे कॉलर के पास वापस आ जाते हैं लेकिन उसके समाप्त होने से पहले । इसके अलावा, एक संक्रमण घटक पर एक विधि कॉल को नजरअंदाज कर दिया जाएगा ।
आपकी सामग्री को एक ऑफकैनवास तत्व के रूप में सक्रिय करता है। एक वैकल्पिक विकल्प स्वीकार करता है object।
आप कंस्ट्रक्टर के साथ एक ऑफकैनवास इंस्टेंस बना सकते हैं, उदाहरण के लिए:
var myOffcanvas = document.getElementById('myOffcanvas')
var bsOffcanvas = new bootstrap.Offcanvas(myOffcanvas)
| तरीका | विवरण |
|---|---|
toggle |
किसी कैनवास तत्व को दिखाने या छिपाने के लिए टॉगल करता है. ऑफकैनवास तत्व को वास्तव में दिखाया या छिपाया गया है (यानी shown.bs.offcanvasया hidden.bs.offcanvasघटना होने से पहले) कॉलर पर वापस आ जाता है। |
show |
एक ऑफकैनवास तत्व दिखाता है। ऑफकैनवास तत्व वास्तव में दिखाए जाने से पहले कॉलर को लौटाता है (यानी shown.bs.offcanvasघटना होने से पहले)। |
hide |
एक ऑफकैनवास तत्व छुपाता है। ऑफकैनवास तत्व वास्तव में छुपा हुआ है (यानी hidden.bs.offcanvasघटना होने से पहले) कॉलर पर वापस आ जाता है। |
getInstance |
स्टेटिक विधि जो आपको DOM तत्व से जुड़े ऑफकैनवास इंस्टेंस प्राप्त करने की अनुमति देती है |
getOrCreateInstance |
स्टेटिक विधि जो आपको DOM तत्व से जुड़े ऑफकैनवास इंस्टेंस प्राप्त करने की अनुमति देती है, या इसे प्रारंभ नहीं किए जाने की स्थिति में एक नया बनाने की अनुमति देती है |
आयोजन
बूटस्ट्रैप का ऑफकैनवास वर्ग ऑफकैनवास कार्यक्षमता में शामिल होने के लिए कुछ घटनाओं को उजागर करता है।
| घटना प्रकार | विवरण |
|---|---|
show.bs.offcanvas |
showइंस्टेंस विधि को कॉल करने पर यह घटना तुरंत सक्रिय हो जाती है। |
shown.bs.offcanvas |
यह घटना तब सक्रिय होती है जब एक ऑफकैनवास तत्व उपयोगकर्ता को दिखाई देता है (सीएसएस संक्रमणों के पूरा होने की प्रतीक्षा करेगा)। |
hide.bs.offcanvas |
इस घटना को तुरंत निकाल दिया जाता है जब hideविधि को बुलाया जाता है। |
hidden.bs.offcanvas |
यह घटना तब सक्रिय होती है जब उपयोगकर्ता से एक ऑफकैनवास तत्व छुपाया जाता है (सीएसएस संक्रमण पूरा होने की प्रतीक्षा करेगा)। |
var myOffcanvas = document.getElementById('myOffcanvas')
myOffcanvas.addEventListener('hidden.bs.offcanvas', function () {
// do something...
})