Негізгі мазмұнға өту Құжаттар шарлауына өту
Check
in English

Кеңестер

Анимациялар үшін CSS3 және жергілікті тақырыпты сақтау үшін деректер-bs-атрибуттары арқылы CSS және JavaScript көмегімен теңшелетін Bootstrap кеңестерін қосуға арналған құжаттама және мысалдар.

Шолу

Құралдар плагинін пайдалану кезінде білу керек нәрселер:

  • Құрал кеңестері орналасу үшін үшінші тарап кітапханасының Попперіне сүйенеді . алдында popper.min.js қосу керек немесе Popper бар bootstrap.jsбіреуін пайдалану керек.bootstrap.bundle.min.js
  • Құрал кеңестері өнімділік себептеріне байланысты қосылады, сондықтан оларды өзіңіз баптандыруыңыз керек .
  • Ұзындығы нөлдік тақырыптары бар құралдар кеңестері ешқашан көрсетілмейді.
  • container: 'body'Күрделі құрамдас бөліктерде (мысалы, енгізу топтары, түймелер топтары, т.б.) ақауларды көрсетпеу үшін көрсетіңіз .
  • Жасырын элементтерде кеңестерді іске қосу жұмыс істемейді.
  • .disabledОрау элементінде немесе элементтерге арналған құралдар кеңестері disabledіске қосылуы керек.
  • Бірнеше жолды қамтитын гиперсілтемелерден іске қосылғанда, құралдар кеңестері ортаға қойылады. Бұл әрекетті болдырмау үшін s white-space: nowrap;on yours пайдаланыңыз .<a>
  • Құрал кеңестері олардың сәйкес элементтері DOM ішінен жойылмай тұрып жасырылуы керек.
  • Құрал кеңестерін көлеңкелі DOM ішіндегі элементтің арқасында іске қосуға болады.

Мұның бәрі бар ма? Керемет, олардың кейбір мысалдармен қалай жұмыс істейтінін көрейік.

Әдепкі бойынша, бұл құрамдас анық рұқсат етілмеген кез келген HTML элементтерін алып тастайтын кірістірілген мазмұнды тазартқышты пайдаланады. Қосымша мәліметтер алу үшін біздің JavaScript құжаттамасындағы тазартқыш бөлімін қараңыз .
Бұл компоненттің анимациялық әсері prefers-reduced-motionмедиа сұрауына байланысты. Арнайы мүмкіндіктер құжаттамасының қысқартылған қозғалыс бөлімін қараңыз .

Мысалдар

Құрал кеңестерін қосыңыз

Жоғарыда айтылғандай, құралдар кеңестерін қолданар алдында баптандыру керек. Беттегі барлық кеңестерді инициализациялаудың бір жолы оларды data-bs-toggleатрибуттары бойынша таңдау болады, мысалы:

const tooltipTriggerList = document.querySelectorAll('[data-bs-toggle="tooltip"]')
const tooltipList = [...tooltipTriggerList].map(tooltipTriggerEl => new bootstrap.Tooltip(tooltipTriggerEl))

Көрсеткіштерді көру үшін төмендегі сілтемелердің үстіне апарыңыз:

Кейбір кірістірілген сілтемелерді құралдар кеңестерімен көрсету үшін толтырғыш мәтіні . Бұл енді тек толтырғыш, өлтіруші емес. Мазмұн мұнда нақты мәтіннің болуын еліктеу үшін ғана орналастырылған . Мұның бәрі сізге нақты жағдайларда пайдаланылған кезде құралдар кеңестерінің қалай көрінетіні туралы түсінік беру үшін ғана. Сілтемелердегі бұл кеңестер оларды өз сайтыңызда немесе жобаңызда қолданғаннан кейін іс жүзінде қалай жұмыс істейтінін көрдіңіз деп үміттенеміз .

html
<p class="muted">Placeholder text to demonstrate some <a href="#" data-bs-toggle="tooltip" data-bs-title="Default tooltip">inline links</a> with tooltips. This is now just filler, no killer. Content placed here just to mimic the presence of <a href="#" data-bs-toggle="tooltip" data-bs-title="Another tooltip">real text</a>. And all that just to give you an idea of how tooltips would look when used in real-world situations. So hopefully you've now seen how <a href="#" data-bs-toggle="tooltip" data-bs-title="Another one here too">these tooltips on links</a> can work in practice, once you use them on <a href="#" data-bs-toggle="tooltip" data-bs-title="The last tip!">your own</a> site or project.
</p>
Кез келген titleнемесе data-bs-titleHTML-де пайдалануға болады. Пайдаланылған кезде , Поппер оны элемент көрсетілген кезде titleавтоматты түрде ауыстырады .data-bs-title

Теңшелетін кеңестер

v5.2.0 нұсқасына қосылды

CSS айнымалы мәндерін пайдаланып құралдар кеңестерінің көрінісін теңшеуге болады . data-bs-custom-class="custom-tooltip"Теңшелетін көріністі қамту және оны жергілікті CSS айнымалысын қайта анықтау үшін пайдалану үшін теңшелетін сыныпты орнаттық.

.custom-tooltip {
  --bs-tooltip-bg: var(--bs-primary);
}
html
<button type="button" class="btn btn-secondary"
        data-bs-toggle="tooltip" data-bs-placement="top"
        data-bs-custom-class="custom-tooltip"
        data-bs-title="This top tooltip is themed via CSS variables.">
  Custom tooltip
</button>

Бағыттар

Құрал кеңестерінің төрт бағытын көру үшін төмендегі түймелердің үстіне апарыңыз: жоғарғы, оң, төменгі және сол жақ. RTL жүйесінде Bootstrap пайдаланған кезде бағыттар шағылыстырылады.

<button type="button" class="btn btn-secondary" data-bs-toggle="tooltip" data-bs-placement="top" data-bs-title="Tooltip on top">
  Tooltip on top
</button>
<button type="button" class="btn btn-secondary" data-bs-toggle="tooltip" data-bs-placement="right" data-bs-title="Tooltip on right">
  Tooltip on right
</button>
<button type="button" class="btn btn-secondary" data-bs-toggle="tooltip" data-bs-placement="bottom" data-bs-title="Tooltip on bottom">
  Tooltip on bottom
</button>
<button type="button" class="btn btn-secondary" data-bs-toggle="tooltip" data-bs-placement="left" data-bs-title="Tooltip on left">
  Tooltip on left
</button>

Және теңшелетін HTML қосылған:

<button type="button" class="btn btn-secondary" data-bs-toggle="tooltip" data-bs-html="true" data-bs-title="<em>Tooltip</em> <u>with</u> <b>HTML</b>">
  Tooltip with HTML
</button>

SVG көмегімен:

CSS

Айнымалылар

v5.2.0 нұсқасына қосылды

.tooltipBootstrap-тың дамып келе жатқан CSS айнымалы мәндерінің бір бөлігі ретінде, құралдар кеңестері нақты уақытта жақсартылған теңшеу үшін жергілікті CSS айнымалы мәндерін пайдаланады . CSS айнымалыларының мәндері Sass арқылы орнатылады, сондықтан Sass теңшеуіне әлі де қолдау көрсетіледі.

  --#{$prefix}tooltip-zindex: #{$zindex-tooltip};
  --#{$prefix}tooltip-max-width: #{$tooltip-max-width};
  --#{$prefix}tooltip-padding-x: #{$tooltip-padding-x};
  --#{$prefix}tooltip-padding-y: #{$tooltip-padding-y};
  --#{$prefix}tooltip-margin: #{$tooltip-margin};
  @include rfs($tooltip-font-size, --#{$prefix}tooltip-font-size);
  --#{$prefix}tooltip-color: #{$tooltip-color};
  --#{$prefix}tooltip-bg: #{$tooltip-bg};
  --#{$prefix}tooltip-border-radius: #{$tooltip-border-radius};
  --#{$prefix}tooltip-opacity: #{$tooltip-opacity};
  --#{$prefix}tooltip-arrow-width: #{$tooltip-arrow-width};
  --#{$prefix}tooltip-arrow-height: #{$tooltip-arrow-height};
  

Sass айнымалылары

$tooltip-font-size:                 $font-size-sm;
$tooltip-max-width:                 200px;
$tooltip-color:                     $white;
$tooltip-bg:                        $black;
$tooltip-border-radius:             $border-radius;
$tooltip-opacity:                   .9;
$tooltip-padding-y:                 $spacer * .25;
$tooltip-padding-x:                 $spacer * .5;
$tooltip-margin:                    null; // TODO: remove this in v6

$tooltip-arrow-width:               .8rem;
$tooltip-arrow-height:              .4rem;
// fusv-disable
$tooltip-arrow-color:               null; // Deprecated in Bootstrap 5.2.0 for CSS variables
// fusv-enable

Қолданылуы

Құрал кеңесінің плагині сұраныс бойынша мазмұн мен түзетулерді жасайды және әдепкі бойынша құралдар кеңестерін олардың іске қосу элементінен кейін орналастырады.

JavaScript арқылы құралдар кеңесін іске қосыңыз:

const exampleEl = document.getElementById('example')
const tooltip = new bootstrap.Tooltip(exampleEl, options)
Толып кету autoжәнеscroll

Түпнұсқалық кеңестің орны негізгі контейнерде біз сияқты болған overflow: autoкезде автоматты түрде өзгертуге әрекет жасайды , бірақ бастапқы орналастыру орнын сақтайды. Мұны шешу үшін әдепкі мәнді қайта анықтау үшін опцияны (опцияны пайдаланатын флип модификаторы үшін ) кез келген HTMLElement параметріне орнатыңыз , мысалы :overflow: scroll.table-responsiveboundarypopperConfig'clippingParents'document.body

const tooltip = new bootstrap.Tooltip('#example', {
  boundary: document.body // or document.querySelector('#boundary')
})

Белгілеу

Құрал кеңесі үшін қажетті түзету тек dataатрибут болып табылады және titleсізде кеңес алғыңыз келетін HTML элементінде. Құрал кеңесінің жасалған белгілеуі өте қарапайым, бірақ ол позицияны қажет етеді (әдепкі topбойынша, плагин арқылы орнатылған).

Кеңестер пернетақта мен көмекші технология пайдаланушылары үшін жұмыс істеуге мүмкіндік береді

Дәстүрлі түрде пернетақтаға бағытталған және интерактивті (сілтемелер немесе пішін басқару элементтері сияқты) HTML элементтеріне құралдар кеңестерін ғана қосу керек. Еркін HTML элементтерін (мысалы, <span>s) атрибут қосу арқылы фокустайтын етіп жасауға болады tabindex="0", бірақ бұл пернетақта пайдаланушылары үшін интерактивті емес элементтерге ықтимал тітіркендіргіш және шатастыратын қойындыларды қосады және қазіргі уақытта көмекші технологиялардың көпшілігі бұл жағдайда құралдар кеңесін жарияламайды. Оған қоса, құралдар кеңесі үшін триггер ретінде ғана сенбеңіз hover, себебі бұл сіздің кеңестеріңізді пернетақта пайдаланушылары үшін іске қосу мүмкін емес етеді.

<!-- HTML to write -->
<a href="#" data-bs-toggle="tooltip" data-bs-title="Some tooltip text!">Hover over me</a>

<!-- Generated markup by the plugin -->
<div class="tooltip bs-tooltip-top" role="tooltip">
  <div class="tooltip-arrow"></div>
  <div class="tooltip-inner">
    Some tooltip text!
  </div>
</div>

Өшірілген элементтер

Төлсипатқа ие элементтер disabledинтерактивті емес, яғни пайдаланушылар кеңесті (немесе қалқымалы терезені) іске қосу үшін оларды фокустай алмайды, меңзерді апара алмайды немесе баса алмайды. Шешім ретінде сіз орауыштан құралдар кеңесін іске қосқыңыз келеді <div>немесе <span>пернетақтада фокусталатын ең дұрысы арқылы арқылы tabindex="0".

html
<span class="d-inline-block" tabindex="0" data-bs-toggle="tooltip" data-bs-title="Disabled tooltip">
  <button class="btn btn-primary" type="button" disabled>Disabled button</button>
</span>

Опциялар

Опциялар деректер атрибуттары немесе JavaScript арқылы берілуі мүмкін болғандықтан, параметр атауын data-bs-сияқты қосуға болады data-bs-animation="{value}". Опцияларды деректер атрибуттары арқылы өткізген кезде опция атауының регистр түрін “ camelCase ” дан “ kebab-case ” түріне өзгертуді ұмытпаңыз. Мысалы, data-bs-custom-class="beautifier"орнына пайдаланыңыз data-bs-customClass="beautifier".

Bootstrap 5.2.0 нұсқасы бойынша барлық компоненттер қарапайым құрамдас конфигурациясын JSON жолы ретінде орналастыра алатын эксперименттік сақталған деректер төлсипатын қолдайды. data-bs-configЭлементте data-bs-config='{"delay":0, "title":123}'және data-bs-title="456"атрибуттары болғанда, соңғы titleмән болады 456және бөлек деректер атрибуттары параметрінде берілген мәндерді қайта анықтайды data-bs-config. Бұған қоса, бар деректер атрибуттары сияқты JSON мәндерін орналастыра алады data-bs-delay='{"show":0,"hide":150}'.

Қауіпсіздік мақсатында sanitize, sanitizeFn, және allowListопциялары деректер атрибуттары арқылы қамтамасыз етілмейтінін ескеріңіз.
Аты Түр Әдепкі Сипаттама
allowList объект Әдепкі мән Рұқсат етілген төлсипаттар мен тегтерді қамтитын нысан.
animation логикалық true Құрал кеңесіне CSS өшіру көшуін қолданыңыз.
boundary жол, элемент 'clippingParents' Құрал кеңесінің толып кету шектеуінің шекарасы (тек Поппердің preventOverflow модификаторына қолданылады). Әдепкі бойынша, ол 'clippingParents'HTMLElement сілтемесін қабылдай алады (тек JavaScript арқылы). Қосымша ақпаратты Поппердің detectOverflow құжаттарынан қараңыз .
container жол, элемент, жалған false Құрал кеңесін белгілі бір элементке қосады. Мысалы: container: 'body'. Бұл опция әсіресе пайдалы, себебі ол құрал кеңесін құжаттың ағынында іске қосу элементінің жанында орналастыруға мүмкіндік береді - бұл терезе өлшемін өзгерту кезінде құрал кеңесінің іске қосу элементінен алыстап кетуіне жол бермейді.
customClass жол, функция '' Көрсетілген кезде құралдар кеңесіне сыныптарды қосыңыз. Бұл сыныптар үлгіде көрсетілген кез келген сыныптарға қосымша қосылатынын ескеріңіз. Бірнеше сыныптарды қосу үшін оларды бос орындармен бөліңіз: 'class-1 class-2'. Сондай-ақ қосымша сынып атаулары бар жалғыз жолды қайтаратын функцияны беруге болады.
delay сан, объект 0 Құрал кеңесін көрсету және жасыру кідірісі (мс) — қолмен іске қосу түріне қолданылмайды. Егер нөмір берілсе, кідіріс жасыру/көрсету үшін де қолданылады. Объектінің құрылымы: delay: { "show": 500, "hide": 100 }.
fallbackPlacements массив ['top', 'right', 'bottom', 'left'] Жиымдағы орналастырулар тізімін беру арқылы резервтік орналастыруларды анықтаңыз (артықшылық ретімен). Қосымша ақпаратты Поппердің мінез-құлық құжаттарынан қараңыз .
html логикалық false Құрал кеңесінде HTML-ге рұқсат беріңіз. Егер шын болса, құралдар кеңесіндегі HTML тегтері құралдар кеңесінде titleкөрсетіледі. Егер жалған болса, innerTextсипат DOM ішіне мазмұнды енгізу үшін пайдаланылады. XSS шабуылдары туралы алаңдасаңыз, мәтінді пайдаланыңыз.
offset массив, жол, функция [0, 0] Құрал кеңесінің мақсатына қатысты ығысуы. Жолды деректер атрибуттарында үтірмен бөлінген мәндер сияқты жіберуге болады: data-bs-offset="10,20". Функция ығысуды анықтау үшін пайдаланылғанда, ол бірінші аргумент ретінде поппер орналасуын, сілтемесін және поппер ректтерін қамтитын нысанмен шақырылады. Іске қосу элементінің DOM түйіні екінші аргумент ретінде жіберіледі. Функция екі саны бар массивді қайтаруы керек: skidding , distance . Қосымша ақпаратты Поппердің офсеттік құжаттарынан қараңыз .
placement жол, функция 'top' Құрал кеңесін қалай орналастыру керек: авто, жоғары, төменгі, солға, оңға. Көрсетілгенде, ол құралдар кеңесінің autoбағытын динамикалық түрде өзгертеді. Орналастыруды анықтау үшін функция пайдаланылған кезде, ол бірінші аргумент ретінде құралдар кеңесі DOM түйінімен және екінші ретінде іске қосу элементі DOM түйінімен шақырылады. Мәтінмән thisқұралдар кеңесінің данасына орнатылады.
popperConfig нөл, объект, функция null Bootstrap әдепкі Popper конфигурациясын өзгерту үшін Поппер конфигурациясын қараңыз . Функция Popper конфигурациясын жасау үшін пайдаланылғанда, ол Bootstrap әдепкі Popper конфигурациясын қамтитын нысанмен шақырылады. Ол әдепкі параметрді өзіңіздің конфигурацияңызбен пайдалануға және біріктіруге көмектеседі. Функция Popper үшін конфигурация нысанын қайтаруы керек.
sanitize логикалық true Санитизацияны қосыңыз немесе өшіріңіз. Белсендірілген болса 'template', 'content'опциялар 'title'тазартылады.
sanitizeFn нөл, функция null Мұнда сіз өзіңіздің дезинфекциялау функциясын бере аласыз. Санитизацияны орындау үшін арнайы кітапхананы пайдаланғыңыз келсе, бұл пайдалы болуы мүмкін.
selector жол, жалған false Егер селектор қамтамасыз етілсе, құралдар кеңесінің нысандары көрсетілген мақсаттарға беріледі. jQuery.onІс жүзінде бұл динамикалық қосылған DOM элементтеріне ( қолдау) құралдар кеңестерін қолдану үшін де қолданылады . Бұл мәселені және ақпараттық мысалды қараңыз .
template жол '<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>' Құрал кеңесін жасау кезінде қолданылатын негізгі HTML. Құрал кеңесі titleішіне енгізіледі .tooltip-inner. .tooltip-arrowқұралдар кеңесінің көрсеткісіне айналады. Ең сыртқы орауыш элементінде .tooltipкласс және класс болуы керек role="tooltip".
title жол, элемент, функция '' titleТөлсипат болмаса, әдепкі тақырып мәні . Егер функция берілсе, ол thisқалқымалы элемент қосылған элементке сілтеме жиынымен шақырылады.
trigger жол 'hover focus' Құрал кеңесі қалай іске қосылады: басу, меңзерді апару, фокустау, қолмен. Сіз бірнеше триггерлерді өткізе аласыз; оларды бос орынмен бөліңіз. құралдар кеңесі , және әдістері 'manual'арқылы бағдарламалы түрде іске қосылатынын көрсетеді ; бұл мәнді кез келген басқа триггермен біріктіру мүмкін емес. өздігінен пернетақта арқылы іске қосылмайтын құралдар кеңестеріне әкеледі және пернетақта пайдаланушылары үшін бірдей ақпаратты жеткізудің балама әдістері болған жағдайда ғана пайдаланылуы керек..tooltip('show').tooltip('hide').tooltip('toggle')'hover'

Жеке кеңестер үшін деректер атрибуттары

Жеке кеңестерге арналған опцияларды жоғарыда түсіндірілгендей, деректер атрибуттарын пайдалану арқылы балама түрде көрсетуге болады.

функциясын пайдалануpopperConfig

const tooltip = new bootstrap.Tooltip(element, {
  popperConfig(defaultBsPopperConfig) {
    // const newPopperConfig = {...}
    // use defaultBsPopperConfig if needed...
    // return newPopperConfig
  }
})

Әдістері

Асинхронды әдістер мен ауысулар

Барлық API әдістері асинхронды және өтуді бастайды . Олар қоңырау шалушыға ауысу басталған бойда, бірақ аяқталмай тұрып қайтады . Сонымен қатар, өтпелі құрамдастағы әдіс шақыруы еленбейді .

Қосымша ақпарат алу үшін біздің JavaScript құжаттамасын қараңыз .

Әдіс Сипаттама
disable Элементтің құралдар кеңесінің көрсетілу мүмкіндігін жояды. Құрал кеңесі қайта қосылғанда ғана көрсетіледі.
dispose Элементтің құралдар кеңесін жасырады және жояды (DOM элементінде сақталған деректерді жояды). Делегацияны пайдаланатын құралдар кеңестерін ( опция арқылы жасалғанselector ) ұрпақ триггер элементтерінде жеке жою мүмкін емес.
enable Элементтің құралдар кеңесіне көрсетілу мүмкіндігін береді. Кеңестер әдепкі бойынша қосылады.
getInstance DOM элементімен байланыстырылған кеңес данасын алуға немесе ол инициализацияланбаған жағдайда жаңасын жасауға мүмкіндік беретін статикалық әдіс.
getOrCreateInstance DOM элементімен байланыстырылған кеңес данасын алуға немесе ол инициализацияланбаған жағдайда жаңасын жасауға мүмкіндік беретін статикалық әдіс.
hide Элементтің құралдар кеңесін жасырады. Құрал кеңесі шынымен жасырылғанға дейін (яғни hidden.bs.tooltipоқиға болғанға дейін) қоңырау шалушыға оралады. Бұл құралдар кеңесінің «қолмен» іске қосылуы болып саналады.
setContent Құрал кеңесінің мазмұнын инициализациядан кейін өзгерту жолын береді.
show Элементтің құралдар кеңесін көрсетеді. Құрал кеңесі нақты көрсетілмей тұрып (яғни оқиға болғанға дейін) қоңырау шалушыға оралады . shown.bs.tooltipБұл құралдар кеңесінің «қолмен» іске қосылуы болып саналады. Ұзындығы нөлдік тақырыптары бар құралдар кеңестері ешқашан көрсетілмейді.
toggle Элементтің құралдар кеңесін ауыстырады. Құрал кеңесі нақты көрсетілмей немесе жасырылғанға дейін (яғни немесе оқиға болғанға дейін) қоңырау шалушыға оралады . Бұл құралдар кеңесінің «қолмен» іске қосылуы болып саналады.shown.bs.tooltiphidden.bs.tooltip
toggleEnabled Элементтің құралдар кеңесін көрсету немесе жасыру мүмкіндігін ауыстырады.
update Элементтің құрал кеңесінің орнын жаңартады.
const tooltip = bootstrap.Tooltip.getInstance('#example') // Returns a Bootstrap tooltip instance

// setContent example
tooltip.setContent({ '.tooltip-inner': 'another title' })
Әдіс аргументті setContentқабылдайды object, мұнда әрбір сипат кілті қалқымалы үлгідегі жарамды stringселектор болып табылады және әрбір қатысты сипат мәні string| element| function| null

Оқиғалар

Оқиға Сипаттама
hide.bs.tooltip Бұл оқиға даналық hideәдісі шақырылған кезде бірден іске қосылады.
hidden.bs.tooltip Бұл оқиға қалқымалы файлды пайдаланушыдан жасыруды аяқтаған кезде іске қосылады (CSS ауысуларының аяқталуын күтеді).
inserted.bs.tooltip Бұл оқиға құрал show.bs.tooltipкеңес үлгісі DOM файлына қосылған оқиғадан кейін іске қосылады.
show.bs.tooltip showБұл оқиға даналық әдісі шақырылған кезде бірден іске қосылады.
shown.bs.tooltip Бұл оқиға қалқымалы файл пайдаланушыға көрінетін болған кезде іске қосылады (CSS ауысуларының аяқталуын күтеді).
const myTooltipEl = document.getElementById('myTooltip')
const tooltip = bootstrap.Tooltip.getOrCreateInstance(myTooltipEl)

myTooltipEl.addEventListener('hidden.bs.tooltip', () => {
  // do something...
})

tooltip.hide()