Bootstrap 元件 (二) Date : 2022/05/25
.btn-close
關閉按鈕
.btn-close-white
改成白色
折疊 (Collapse)
點擊元素需要有 data-bs-toggle="collapse"
來觸發摺疊功能
點擊 a 元素要有 href="#id"
,或是 button 上需要有 data-bs-target="#id"
,對應摺疊內容
<p >
<a class ="btn btn-primary" data-bs-toggle ="collapse" href ="#collapseExample" role ="button" >
Link with href
</a >
<button class ="btn btn-primary" type ="button" data-bs-toggle ="collapse" data-bs-target ="#collapseExample" >
Button with data-bs-target
</button >
</p >
<div class ="collapse" id ="collapseExample" >
<div class ="card card-body" >
Some placeholder content for the collapse component. This panel is hidden by default but revealed when the user activates the relevant trigger.
</div >
</div >
水平 添加 .collapse-horizontal 類別來轉換的是width 而不是 height ,在子元素上設定width。
<p >
<button class ="btn btn-primary" type ="button" data-bs-toggle ="collapse" data-bs-target ="#Tang03" >
可達鴨
</button >
</p >
<div style ="min-height: 120px;" >
<div class ="collapse collapse-horizontal" id ="Tang03" >
<div class ="card card-body" style ="width: 500px;" >
呱呱呱呱呱呱,呱呱呱呱呱呱呱呱呱呱呱呱。
</div >
</div >
</div >
列表群組 (List group)
.list-group
群組
.list-group-item
項目
.list-group-item-action
hover
.list-group-flush
移除部分邊框及圓角
.list-group-numbered
編號
.list-group-horizontal
水平
list-group-item-primary
情境顏色
互動視窗 (Modal)
可以使用 button 或 a 元素觸發 modal 視窗,並啟動 data-bs-toggle="modal" 效果。
兩者觸發需對應 modal 主體的 id 。
在使用 button 元素時, 要在 data-bs-target 設定 id。
在使用 a 元素時, 要在 href 設定 id。
data-bs-backdrop="static"
點旁邊關不掉視窗(靜態背景)
.modal
互動視窗
.modal-content
內容
.modal-header
.modal-title
標題
.modal-body
內文
.modal-footer
按鈕
data-bs-toggle="modal"
互動視窗功能
.modal-dialog-scrollable
內文過多,增加滾輪
.modal-dialog-centered
水平垂直置中
modal-xl/lg/sm
尺寸1140px/預設500px/800px/300px
data-bs-dismiss="modal"
關閉 modal 視窗
.modal-dialog
視窗下滑的效果(動畫)
.fade
淡入淡出
可以 link animate.css 改變彈出動畫。
const tang = document. querySelector ( '#tang' )
const dialog = document. querySelector ( '#tang .modal-dialog' )
tang. addEventListener ( 'show.bs.modal' , ( ) => {
goAnimation ( 'animate__bounceOutUp' , 'animate__bounceIn' )
} )
tang. addEventListener ( 'hide.bs.modal' , ( ) => {
goAnimation ( 'animate__bounceIn' , 'animate__bounceOutUp' )
} )
function goAnimation ( remove, add ) {
dialog. classList. remove ( remove)
dialog. classList. add ( 'animate__animated' , add, 'animate_duration' )
}
.animate_duration {
animation-duration : 0.5s ;
}
.fade {
transition-duration :0.5s ;
}
監聽事件參考:
導覽與頁籤 (Navs and tabs)
本身是彈性盒,子元素無論是.nav-item .nav-link 都是彈性項目。
.nav 有兩種寬度擴展用的 class , .nav-fill、.nav-justifide
將剩餘空間平均分配給每個item兩側
.nav
導覽
.nav-item
.nav-link
.tab-content
內文父元素
.tab-pane
內文子元素
.nav-tabs
分頁標籤
.nav-pills
膠囊狀樣式
.nav-fill
填充
.nav-justified
對齊
javascript 行為
先確認使用 .nav-tabs or .nav-pills
.nav-tabs 在分頁按鈕加上 data-bs-toggle="tab" 啟動 tab 功能
.nav-pills 在分頁按鈕加上 data-bs-toggle="pill" 啟動 pill - 功能
確認對應的錨點 id ,範例是 #HTML #CSS #JS ,點選後對切換到對應的區塊。
設立垂直頁籤。在外層設定.d-flex,標籤上設定 .flex-column
導覽列 (Navbar)
.navbar 是 flexbox
.fixed-top 固定在上方,.fixed-bottom 固定在下方
.navbar-expand-* 指通過某個中斷點展開整個導覽列,若沒這個 class 導覽列會永遠處於折疊狀態(漢堡按鈕)
.navbar-dark 會讓導覽列文字白色,需搭配深色的背景
.navbar-light 會讓導覽列文字黑色,需搭配淺色的背景
對調 logo 與 漢堡按鈕的位置,在摺疊狀態會互換位置
.navbar
.navbar-expand
響應式
.navbar-dark
導覽列文字顯示"白色
.navbar-light
導覽列文字顯示"黑色
.navbar-brand
導覽列LOGO位置
.navbar-toggler
導覽響應式摺疊icon(漢堡按鈕)
.navbar-nav
導覽列的頁籤
.navbar-collapse
摺疊
下拉選單 (Dropdowns) Date:2022/05/31
下拉功能必須依賴第三方函式庫 popper.js
使用 bootstrap.bundle.min.js/ bootstrap.bundle.js 包含 popper.js。
bootstrap..min.js/bootstrap.js 沒有包含 popper.js。
.dropdown
下拉選單
.dropdown-menu
清單
.dropdown-menu-start
選單靠左
.dropdown-menu-end
選單靠右
.dropdown-menu-*-end
響應式
.dropdown-header
分類標題
.dropdown-item
清單的item
dropdown-divider
清單的分隔線
.dropdown-toggle
white-space: nowrap;
.dropdown-toggle-split
分割按鈕
.dropdown-menu-dark
深色樣式
.dropup
選單向上
.dropend
選單向下
.dropstart
選單向左
選單寬度 : 直接設定 style="width: 500px;
下拉選單位移:在 button 添加 data-bs-offset="10(水平位移量),20(垂直位移量)
自動關閉行為 : data-bs-auto-close="true" 為預設 / 點外部或按鈕都可以關閉選單
彈出提示框 (Popovers) Date:2022/05/31
只有設定 data 無法啟動, 需使用程式啟動它。
需要依賴第三方函式庫 popper.js ,才可以工作。
bootstrap.bundle.min.js 含有 popper.js
data-bs-toggle="popover"
觸發彈出提示框
data-bs-placement="right" /bottom /left /top
方向
data-bs-trigger
預設為 click ,必須點按鈕才會關閉popover
data-bs-trigger="focus"
在下一次按鈕以外任何地方 click 收起 popover
data-bs-trigger="hover"
滑鼠移動按鈕彈出, 移出消失。
單個抓取
<button id ="Tang" type ="button"
class ="btn btn-lg btn-info" data-bs-toggle ="popover"
title ="我是title" data-bs-content ="我是內容"
data-bs-placement ="right"
data-bs-trigger ="focus" > 按我!!</button >
const tang = document. querySelector ( '#Tang' )
new bootstrap. Popover ( tang)
多個按鈕抓取
const dom = document. querySelectorAll ( '[data-bs-toggle="popover"]' )
console. log ( dom)
var popoverTriggerList = [ ] . slice . call ( dom)
var popoverTriggerList = Array. from ( dom)
var popoverTriggerList = [ ... dom]
var popoverList = popoverTriggerList. map ( function ( popoverTriggerEl ) {
return new bootstrap. Popover ( popoverTriggerEl)
} )
Date:2022/05/31
只有設定 data 無法啟動, 需使用程式啟動它。
需要依賴第三方函式庫 popper.js ,才可以工作。
bootstrap.bundle.min.js 含有 popper.js
data-bs-toggle="tooltip"
工具提示框觸發
data-bs-placement="top"
提示框放置上方
data-bs-placement="bottom"
提示框放置下方
data-bs-placement="right"
提示框放置右方
data-bs-placement="left"
提示框放置左方
var tooltipTang = document. querySelector ( '#Tang' )
new bootstrap. Tooltip ( tooltipTang)
const tooltipArrayLike = document. querySelectorAll ( '[data-bs-toggle="tooltip"]' )
const tooltipArray = Array. from ( tooltipArrayLike)
tooltipArray. map ( function ( e ) {
return new bootstrap. Tooltip ( e)
} )
讀取圖示 (Spinners)
loading
-
-
spinner-border
線條轉圈
spinner-grow
圓形漸層
.spinner-border-sm
尺寸變化
loadding 屬於文字,可以直接使用文字樣式修改大小
.spinner-grow-sm
尺寸變化