精品久久久久久亚洲精品_成人午夜网站_www日本高清_亚洲精品久久久久午夜福

Offcanvas

Build hidden sidebars into your project for navigation, shopping carts, and more with a few classes and our JavaScript plugin.

How it works

Offcanvas is a sidebar component that can be toggled via JavaScript to appear from the left, right, or bottom edge of the viewport. Buttons or anchors are used as triggers that are attached to specific elements you toggle, and data attributes are used to invoke our JavaScript.

  • Offcanvas shares some of the same JavaScript code as modals. Conceptually, they are quite similar, but they are separate plugins.
  • Similarly, some source Sass variables for offcanvas’s styles and dimensions are inherited from the modal’s variables.
  • When shown, offcanvas includes a default backdrop that can be clicked to hide the offcanvas.
  • Similar to modals, only one offcanvas can be shown at a time.

Heads up! Given how CSS handles animations, you cannot use margin or translate on an .offcanvas element. Instead, use the class as an independent wrapping element.

The animation effect of this component is dependent on the prefers-reduced-motion media query. See the reduced motion section of our accessibility documentation.

Examples

Offcanvas components

Below is an offcanvas example that is shown by default (via .show on .offcanvas). Offcanvas includes support for a header with a close button and an optional body class for some initial padding. We suggest that you include offcanvas headers with dismiss actions whenever possible, or provide an explicit dismiss action.

Offcanvas
Content for the offcanvas goes here. You can place just about any Bootstrap component or custom elements here.
<div class="offcanvas offcanvas-start show" tabindex="-1" id="offcanvas" aria-labelledby="offcanvasLabel" data-bs-backdrop="false" data-bs-scroll="true">
  <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>

Live demo

Use the buttons below to show and hide an offcanvas element via JavaScript that toggles the .show class on an element with the .offcanvas class.

  • .offcanvas hides content (default)
  • .offcanvas.show shows content

You can use a link with the href attribute, or a button with the data-bs-target attribute. In both cases, the data-bs-toggle="offcanvas" is required.

Link with href
Offcanvas
Some text as placeholder. In real life you can have the elements you have chosen. Like, text, images, lists, etc.
<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>

Placement

There’s no default placement for offcanvas components, so you must add one of the modifier classes below;

  • .offcanvas-start places offcanvas on the left of the viewport (shown above)
  • .offcanvas-end places offcanvas on the right of the viewport
  • .offcanvas-bottom places offcanvas on the bottom of the viewport

Try the right and bottom examples out below.

Offcanvas right
...
<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>
Offcanvas bottom
...
<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>

Backdrop

Scrolling the <body> element is disabled when an offcanvas and its backdrop are visible. Use the data-bs-scroll attribute to toggle <body> scrolling and data-bs-backdrop to toggle the backdrop.

Colored with scrolling

Try scrolling the rest of the page to see this option in action.

Offcanvas with backdrop

.....

Backdroped with scrolling

Try scrolling the rest of the page to see this option in action.

<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>

Accessibility

Since the offcanvas panel is conceptually a modal dialog, be sure to add aria-labelledby="..."—referencing the offcanvas title—to .offcanvas. Note that you don’t need to add role="dialog" since we already add it via JavaScript.

Sass

Variables

$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-body-backdrop-color:     rgba($modal-backdrop-bg, $modal-backdrop-opacity);
$offcanvas-box-shadow:              $modal-content-box-shadow-xs;

Usage

The offcanvas plugin utilizes a few classes and attributes to handle the heavy lifting:

  • .offcanvas hides the content
  • .offcanvas.show shows the content
  • .offcanvas-start hides the offcanvas on the left
  • .offcanvas-end hides the offcanvas on the right
  • .offcanvas-bottom hides the offcanvas on the bottom

Add a dismiss button with the data-bs-dismiss="offcanvas" attribute, which triggers the JavaScript functionality. Be sure to use the <button> element with it for proper behavior across all devices.

Via data attributes

Add data-bs-toggle="offcanvas" and a data-bs-target or href to the element to automatically assign control of one offcanvas element. The data-bs-target attribute accepts a CSS selector to apply the offcanvas to. Be sure to add the class offcanvas to the offcanvas element. If you’d like it to default open, add the additional class show.

Via JavaScript

Enable manually with:

var offcanvasElementList = [].slice.call(document.querySelectorAll('.offcanvas'))
var offcanvasList = offcanvasElementList.map(function (offcanvasEl) {
  return new bootstrap.Offcanvas(offcanvasEl)
})

Options

Options can be passed via data attributes or JavaScript. For data attributes, append the option name to data-bs-, as in data-bs-backdrop="".

Name Type Default Description
backdrop boolean true Apply a backdrop on body while offcanvas is open
keyboard boolean true Closes the offcanvas when escape key is pressed
scroll boolean false Allow body scrolling while offcanvas is open

Methods

Asynchronous methods and transitions

All API methods are asynchronous and start a transition. They return to the caller as soon as the transition is started but before it ends. In addition, a method call on a transitioning component will be ignored.

See our JavaScript documentation for more information.

Activates your content as an offcanvas element. Accepts an optional options object.

You can create an offcanvas instance with the constructor, for example:

var myOffcanvas = document.getElementById('myOffcanvas')
var bsOffcanvas = new bootstrap.Offcanvas(myOffcanvas)
Method Description
toggle Toggles an offcanvas element to shown or hidden. Returns to the caller before the offcanvas element has actually been shown or hidden (i.e. before the shown.bs.offcanvas or hidden.bs.offcanvas event occurs).
show Shows an offcanvas element. Returns to the caller before the offcanvas element has actually been shown (i.e. before the shown.bs.offcanvas event occurs).
hide Hides an offcanvas element. Returns to the caller before the offcanvas element has actually been hidden (i.e. before the hidden.bs.offcanvas event occurs).
_getInstance Static method which allows you to get the offcanvas instance associated with a DOM element

Events

Bootstrap’s offcanvas class exposes a few events for hooking into offcanvas functionality.

Event type Description
show.bs.offcanvas This event fires immediately when the show instance method is called.
shown.bs.offcanvas This event is fired when an offcanvas element has been made visible to the user (will wait for CSS transitions to complete).
hide.bs.offcanvas This event is fired immediately when the hide method has been called.
hidden.bs.offcanvas This event is fired when an offcanvas element has been hidden from the user (will wait for CSS transitions to complete).
var myOffcanvas = document.getElementById('myOffcanvas')
myOffcanvas.addEventListener('hidden.bs.offcanvas', function () {
  // do something...
})
返回頂部
精品久久久久久亚洲精品_成人午夜网站_www日本高清_亚洲精品久久久久午夜福

      国产精品久久久久9999吃药| 久久在线免费观看| 亚洲国产美女| 国产精品国产三级国产专播品爱网 | 亚洲一区二区三区免费观看 | 久久久精品性| 一区二区免费在线观看| 在线观看国产成人av片| 国产精品嫩草影院一区二区| 欧美激情一区二区三区| 久久夜色精品国产| 欧美专区福利在线| 亚洲欧美在线观看| 一区二区三区日韩欧美精品| 亚洲国产乱码最新视频| 在线成人免费观看| 伊人夜夜躁av伊人久久| 国产日韩欧美a| 国产精品色婷婷| 国产精品一区在线播放| 国产精品毛片a∨一区二区三区|国| 欧美精品18+| 欧美极品一区| 欧美日韩国产一区精品一区| 欧美成人性网| 欧美精品亚洲| 国产精品不卡在线| 国产精品久久久久久久久免费桃花 | 亚洲砖区区免费| 亚洲色诱最新| 亚洲欧美成人一区二区三区| 亚洲一卡二卡三卡四卡五卡| 亚洲永久网站| 久久精品国产亚洲一区二区三区| 久久激情视频免费观看| 久久青草久久| 欧美激情综合色| 欧美三级欧美一级| 国产精品视频| 在线观看国产精品网站| 亚洲三级电影全部在线观看高清| 亚洲精品综合| 午夜免费久久久久| 久久一区二区精品| 欧美日韩在线综合| 国产亚洲精品bt天堂精选| 在线欧美视频| 国产精品99久久久久久久女警| 亚洲欧美三级在线| 久热精品视频在线观看| 欧美日韩在线三区| 国产一在线精品一区在线观看| 亚洲成色777777女色窝| 一本一本大道香蕉久在线精品| 亚洲一区二区在线免费观看视频| 久久激情综合网| 欧美日韩国产色站一区二区三区| 国产精品视频一区二区三区| 136国产福利精品导航| 在线一区二区三区四区五区| 久久精品99国产精品日本| 欧美精品成人一区二区在线观看| 国产久一道中文一区| 亚洲国产精品尤物yw在线观看 | 亚洲小说春色综合另类电影| 久久久久久久一区二区| 欧美日韩在线观看一区二区三区| 国语精品一区| 亚欧成人精品| 欧美三级在线| 亚洲国产一区二区三区青草影视| 午夜久久久久久| 欧美日韩伦理在线| 亚洲激情电影在线| 久久一区二区精品| 国产一区二区三区久久| 一区二区三区免费网站| 免费一区二区三区| 激情丁香综合| 久久精品视频一| 狠狠久久亚洲欧美专区| 亚洲一区三区视频在线观看| 亚洲一区二三| 亚洲一区视频在线观看视频| 欧美sm极限捆绑bd| 国产综合av| 久久亚洲影院| 在线观看不卡av| 老司机精品视频网站| 国产区二精品视| 欧美一区二区三区啪啪| 国产精品黄页免费高清在线观看| 99re亚洲国产精品| 欧美人成免费网站| 制服诱惑一区二区| 欧美色图天堂网| 亚洲先锋成人| 国产日韩欧美视频| 久久久精品一区| 在线国产亚洲欧美| 欧美成年人网站| 亚洲免费黄色| 在线视频亚洲| 男女av一区三区二区色多| 久久婷婷国产麻豆91天堂| 国产精品国产亚洲精品看不卡15| 亚洲精品乱码久久久久久久久 | 午夜精品视频网站| 两个人的视频www国产精品| 伊人成综合网伊人222| 久久久久欧美精品| 亚洲国产精品va| 欧美日韩精品一区二区天天拍小说| 一本色道久久综合| 国产精品伦一区| 久久精品日韩欧美| 亚洲国产高清一区| 欧美日韩一二区| 久久精品成人一区二区三区| 亚洲福利国产精品| 欧美精品一区二区蜜臀亚洲| 亚洲一区二区三区精品在线| 国产日韩欧美综合在线| 欧美 日韩 国产精品免费观看| 999亚洲国产精| 国内精品亚洲| 欧美午夜不卡视频| 久久先锋影音| 亚洲综合导航| 亚洲激情视频网| 国产日产亚洲精品系列| 欧美激情bt| 久久精品视频在线免费观看| 亚洲美女少妇无套啪啪呻吟| 国产色综合天天综合网| 欧美大片第1页| 久久激情网站| 亚洲一区二区三区四区中文| 在线观看亚洲视频啊啊啊啊| 国产精品久久久91| 欧美激情一级片一区二区| 欧美永久精品| 亚洲一区二区三区免费视频| 亚洲国产精品高清久久久| 国产精品美女在线| 欧美日韩视频在线第一区| 久久躁日日躁aaaaxxxx| 午夜精品免费视频| 一区二区av在线| 亚洲欧洲日韩在线| 在线观看一区二区视频| 国产午夜精品福利| 国产美女精品| 国产精品国产三级国产aⅴ浪潮| 久久一二三区| 牛牛影视久久网| 久久最新视频| 久久在线视频| 久久性色av| 久久影院亚洲| 美女视频一区免费观看| 久久免费偷拍视频| 久久综合狠狠| 亚洲一区二区在线| 亚洲私人影院| 亚洲一二三区视频在线观看| 一区二区免费在线观看| 91久久夜色精品国产网站| 亚洲国产第一| 亚洲欧洲精品一区二区三区| 亚洲国产日韩在线一区模特| 精品福利免费观看| 亚洲国产精品电影| 亚洲美女少妇无套啪啪呻吟| 亚洲美女视频| 夜夜嗨一区二区三区| 亚洲午夜激情在线| 亚洲男女毛片无遮挡| 亚洲欧美日韩一区在线观看| 亚洲综合不卡| 久久频这里精品99香蕉| 美日韩精品免费观看视频| 欧美成人免费在线视频| 欧美日韩一区高清| 国产精品一区免费视频| 国产一区二区三区四区三区四 | 久久精品国产一区二区三| 久久久久久久一区二区三区| 久久伊伊香蕉| 欧美日韩免费观看中文| 国产麻豆综合| 亚洲高清毛片| 亚洲一区免费观看| 久久亚洲精品中文字幕冲田杏梨| 欧美成人午夜剧场免费观看| 欧美日韩一区二区高清| 国产亚洲视频在线观看| 亚洲精品一区二区三区樱花| 亚洲男人天堂2024| 欧美国产日韩一区二区|