האָפּקען צו הויפּט אינהאַלט האָפּקען צו דאָקס נאַוויגאַציע
in English

אָפקאַנוואַס

בויען פאַרבאָרגן סיידבאַרז אין דיין פּרויעקט פֿאַר נאַוויגאַציע, שאַפּינג קאַרץ און מער מיט עטלעכע קלאסן און אונדזער דזשאַוואַסקריפּט פּלוגין.

וויאזוי עס ארבעט

Offcanvas איז אַ סיידבאַר קאָמפּאָנענט וואָס קענען זיין טאַגאַלד דורך דזשאַוואַסקריפּט צו דערשייַנען פֿון די לינקס, רעכט אָדער דנאָ ברעג פון די וויופּאָרט. קנעפּלעך אָדער אַנגקערז זענען געניצט ווי טריגערז וואָס זענען אַטאַטשט צו ספּעציפיש עלעמענטן איר טאַגאַל, און dataאַטריביוץ זענען גענוצט צו רופן אונדזער דזשאַוואַסקריפּט.

  • Offcanvas שאַרעס עטלעכע פון ​​​​די זעלבע דזשאַוואַסקריפּט קאָד ווי מאָדאַלז. קאַנסעפּטשואַלי, זיי זענען גאַנץ ענלעך, אָבער זיי זענען באַזונדער פּלוגינס.
  • סימילאַרלי, עטלעכע מקור סאַסס וועריאַבאַלז פֿאַר אָפקאַנוואַס ס סטיילז און דימענשאַנז זענען ינכעראַטיד פון די מאָדאַל וועריאַבאַלז.
  • ווען געוויזן, אָפקאַנוואַס כולל אַ פעליקייַט באַקדראַפּ וואָס קענען זיין קליקט צו באַהאַלטן די אָפקאַנוואַס.
  • ענלעך צו מאָדאַלס, בלויז איין אָפקאַנוואַס קענען זיין געוויזן אין אַ צייט.

קאָפּ אַרויף! געגעבן ווי CSS כאַנדאַלז אַנאַמיישאַנז, איר קענען נישט נוצן marginאָדער translateאויף אַן .offcanvasעלעמענט. אַנשטאָט, נוצן די קלאַס ווי אַ פרייַ ראַפּינג עלעמענט.

די אַנאַמיישאַן ווירקונג פון דעם קאָמפּאָנענט איז אָפענגיק אויף די prefers-reduced-motionמידיאַ אָנפֿרעג. זען די רידוסט באַוועגונג אָפּטיילונג פון אונדזער אַקסעסאַביליטי דאַקיומענטיישאַן .

ביישפילן

אָפקאַנוואַס קאַמפּאָונאַנץ

ונטער איז אַן אָפקאַנוואַס ביישפּיל וואָס איז געוויזן דורך פעליקייַט (דורך .showאויף .offcanvas). Offcanvas כולל שטיצן פֿאַר אַ כעדער מיט אַ נאָענט קנעפּל און אַ אַפּשאַנאַל גוף קלאַס פֿאַר עטלעכע ערשט padding. מיר פֿאָרשלאָגן אַז איר אַרייַננעמען אָפקאַנוואַס כעדערז מיט אָפּזאָגן אַקשאַנז ווען מעגלעך, אָדער צושטעלן אַ יקספּליסאַט אָפּזאָגן קאַמף.

אָפקאַנוואַס
אינהאַלט פֿאַר די אָפקאַנוואַס גייט דאָ. איר קענען שטעלן כּמעט קיין Bootstrap קאָמפּאָנענט אָדער מנהג עלעמענטן דאָ.
<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"איז פארלאנגט.

לינק מיט href
אָפקאַנוואַס
עטלעכע טעקסט ווי אָרטהאָלדער. אין פאַקטיש לעבן איר קענען האָבן די עלעמענטן וואָס איר האָט אויסדערוויילט. ווי, טעקסט, בילדער, רשימות, אאז"ו ו.
<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">Backdrop 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-backdrop-bg:             $modal-backdrop-bg;
$offcanvas-backdrop-opacity:        $modal-backdrop-opacity;

באַניץ

די אָפקאַנוואַס פּלוגין ניצט עטלעכע קלאסן און אַטריביוץ צו שעפּן די שווער ליפטינג:

  • .offcanvasבאַהאַלט דעם אינהאַלט
  • .offcanvas.showווייזט די אינהאַלט
  • .offcanvas-startבאַהאַלט די אָפֿקאַנוואַס אויף לינקס
  • .offcanvas-endכיידז די אָפקאַנוואַס אויף די רעכט
  • .offcanvas-bottomכיידז די אָפקאַנוואַס אויף די דנאָ

לייג אַ אָפּזאָגן קנעפּל מיט די data-bs-dismiss="offcanvas"אַטריביוט, וואָס טריגערז די דזשאַוואַסקריפּט פאַנגקשאַנאַליטי. זייט זיכער צו נוצן דעם <button>עלעמענט מיט אים פֿאַר געהעריק נאַטור אויף אַלע דעוויסעס.

דורך דאַטן אַטריביוץ

Toggle

לייג data-bs-toggle="offcanvas"און אַ data-bs-targetאָדער hrefצו דעם עלעמענט צו אויטאָמאַטיש באַשטימען קאָנטראָל פון איין אָפקאַנוואַס עלעמענט. דער data-bs-targetאַטריביוט אַקסעפּץ אַ CSS סעלעקטאָר צו צולייגן די אָפקאַנוואַס. זייט זיכער צו לייגן די קלאַס offcanvasצו די אָפקאַנוואַס עלעמענט. אויב איר ווילט אַז עס זאָל זיין פעליקייַט עפענען, לייגן די נאָך קלאַס show.

אָפּזאָגן

דיסמיסאַל קענען זיין אַטשיווד מיט די dataאַטריביוט אויף אַ קנעפּל אין די אָפקאַנוואַס ווי דעמאַנסטרייטיד אונטן:

<button type="button" class="btn-close" data-bs-dismiss="offcanvas" aria-label="Close"></button>

אָדער אויף אַ קנעפּל אַרויס די אָפקאַנוואַס ניצן די data-bs-targetווי דעמאַנסטרייטיד אונטן:

<button type="button" class="btn-close" data-bs-dismiss="offcanvas" data-bs-target="#my-offcanvas" aria-label="Close"></button>
כאָטש ביידע וועגן צו אָפּזאָגן אַן אָפקאַנוואַס זענען געשטיצט, האַלטן אין מיינונג אַז די דיסמיסינג פון אַרויס אַן אָפקאַנוואַס קען נישט שטימען מיט די WAI-ARIA מאָדאַל דיאַלאָג פּלאַן מוסטער . טאָן דאָס אין דיין אייגן ריזיקירן.

דורך דזשאַוואַסקריפּט

געבן מאַניואַלי מיט:

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 דער געשעעניש איז פייערד ווען אַן אָפקאַנוואַס עלעמענט איז קענטיק צו דער באַניצער (וועט וואַרטן פֿאַר CSS טראַנזישאַנז צו פאַרענדיקן).
hide.bs.offcanvas דעם געשעעניש איז פייערד מיד ווען דער hideאופֿן איז גערופן.
hidden.bs.offcanvas דער געשעעניש איז פייערד ווען אַן אָפקאַנוואַס עלעמענט איז פאַרבאָרגן פון דער באַניצער (וועט וואַרטן פֿאַר CSS טראַנזישאַנז צו פאַרענדיקן).
var myOffcanvas = document.getElementById('myOffcanvas')
myOffcanvas.addEventListener('hidden.bs.offcanvas', function () {
  // do something...
})