Pereiti prie pagrindinio turinio Pereiti prie dokumentų naršymo
in English

Patarimai

Dokumentacija ir pavyzdžiai, kaip pridėti pasirinktinių „Bootstrap“ įrankių patarimų su CSS ir „JavaScript“, naudojant CSS3 animacijai ir duomenų-bs-atributus vietiniam pavadinimui saugoti.

Apžvalga

Ką reikia žinoti naudojant patarimo papildinį:

  • Patarimų padėties nustatymas remiasi trečiosios šalies biblioteka „ Popper “. Kad patarimai veiktų, prieš bootstrap.js turite įtraukti popper.min.js arba naudoti bootstrap.bundle.min.js/ bootstrap.bundle.jskuriame yra Popper!
  • Patarimai pasirenkami dėl našumo priežasčių, todėl turite juos inicijuoti patys .
  • Patarimai su nulinio ilgio pavadinimais niekada nerodomi.
  • Nurodykite container: 'body', kad išvengtumėte atvaizdavimo problemų sudėtingesniuose komponentuose (pvz., įvesties grupėse, mygtukų grupėse ir kt.).
  • Paslėptų elementų patarimų suaktyvinimas neveiks.
  • Įrankių patarimai .disabledarba disabledelementai turi būti suaktyvinti ant pakuotės elemento.
  • Kai suaktyvinama iš hipersaitų, apimančių kelias eilutes, patarimai bus centre. Naudokite white-space: nowrap;ant savo <a>, kad išvengtumėte tokio elgesio.
  • Patarimai turi būti paslėpti prieš pašalinant atitinkamus elementus iš DOM.
  • Patarimai gali būti suaktyvinti dėl elemento šešėlinio DOM viduje.
Pagal numatytuosius nustatymus šis komponentas naudoja integruotą turinio valymo priemonę, kuri pašalina visus HTML elementus, kurie nėra aiškiai leidžiami. Norėdami gauti daugiau informacijos , žr. „JavaScript“ dokumentacijos valymo priemonių skyrių .
Šio komponento animacijos efektas priklauso nuo prefers-reduced-motionmedijos užklausos. Žr . mūsų pritaikymo neįgaliesiems dokumentacijos skyrių „Sumažintas judėjimas“ .

Turite visa tai? Puiku, pažiūrėkime, kaip jie veikia pateikdami keletą pavyzdžių.

Pavyzdys: visur įgalinkite patarimus

Vienas iš būdų inicijuoti visus patarimus puslapyje būtų pasirinkti juos pagal data-bs-toggleatributą:

var tooltipTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]'))
var tooltipList = tooltipTriggerList.map(function (tooltipTriggerEl) {
  return new bootstrap.Tooltip(tooltipTriggerEl)
})

Pavyzdžiai

Užveskite pelės žymeklį ant toliau pateiktų nuorodų, kad pamatytumėte patarimus:

Vietos rezervavimo tekstas, skirtas parodyti kai kurias eilutes su patarimais. Dabar tai tik užpildas, o ne žudikas. Turinys čia patalpintas tik tam, kad imituotų tikro teksto buvimą . Ir visa tai tik tam, kad suprastumėte, kaip patarimai atrodys, kai naudojami realiose situacijose. Taigi tikimės, kad dabar pamatėte, kaip šie nuorodų patarimai gali veikti praktiškai, kai juos naudosite savo svetainėje ar projekte.

Užveskite pelės žymeklį ant toliau pateiktų mygtukų, kad pamatytumėte keturias patarimų nuorodas: viršuje, dešinėje, apačioje ir kairėje. Nurodymai rodomi naudojant „Bootstrap“ RTL.

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

Ir pridėjus tinkintą HTML:

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

Su SVG:

Sass

Kintamieji

$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:                    0;

$tooltip-arrow-width:               .8rem;
$tooltip-arrow-height:              .4rem;
$tooltip-arrow-color:               $tooltip-bg;

Naudojimas

Patarimų papildinys generuoja turinį ir žymėjimą pagal poreikį ir pagal numatytuosius nustatymus pateikia patarimus po jų aktyviklio elemento.

Suaktyvinkite patarimą naudodami „JavaScript“:

var exampleEl = document.getElementById('example')
var tooltip = new bootstrap.Tooltip(exampleEl, options)
Perpildymas autoirscroll

Patarimo padėtis bandoma automatiškai pakeisti, kai pirminiame sudėtiniame rodinyje yra overflow: autoarba overflow: scrollpatinka mūsų .table-responsive, bet vis tiek išlaikoma pradinė paskirties vietos padėtis. Norėdami tai išspręsti, nustatykite boundaryparinktį (apvertimo modifikatoriaus, naudojant šią popperConfigparinktį) į bet kurį HTMLElementą, kad nepaisytumėte numatytosios reikšmės 'clippingParents', pvz document.body.:

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

Žymėjimas

Reikalingas patarimo žymėjimas yra tik dataatributas ir titleHTML elemente, kuriame norite turėti patarimą. Sugeneruotas patarimo žymėjimas yra gana paprastas, nors tam reikia padėties (pagal numatytuosius nustatymus, topkurią nustato papildinys).

Patarimų pritaikymas klaviatūros ir pagalbinių technologijų naudotojams

Įrankių patarimus turėtumėte pridėti tik prie HTML elementų, kurie tradiciškai yra skirti klaviatūrai ir yra interaktyvūs (pvz., nuorodos ar formos valdikliai). Nors savavališkus HTML elementus (pvz., <span>s) galima sufokusuoti pridedant tabindex="0"atributą, dėl to klaviatūros naudotojams bus pridėta potencialiai erzinančių ir klaidinančių tabuliavimo taškų neinteraktyviuose elementuose, o dauguma pagalbinių technologijų šiuo metu nepateikia patarimo šioje situacijoje. Be to, nepasikliaukite vien tik hoverpatarimo aktyvikliu, nes dėl to klaviatūros naudotojai negalės suaktyvinti patarimų.

<!-- HTML to write -->
<a href="#" data-bs-toggle="tooltip" 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>

Išjungti elementai

Elementai su disabledatributu nėra interaktyvūs, o tai reiškia, kad naudotojai negali sufokusuoti, užvesti pelės žymeklio ar spustelėti jų, kad suaktyvintų patarimą (arba iššokantįjį ekraną). Norėdami išspręsti šią problemą, norėsite suaktyvinti patarimą iš paketo <div>arba <span>, idealiu atveju, sufokusuoti klaviatūrą naudodami tabindex="0".

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

Galimybės

Parinktys gali būti perduodamos naudojant duomenų atributus arba JavaScript. Duomenų atributams pridėkite parinkties pavadinimą prie data-bs-, kaip ir data-bs-animation="". Perduodant parinktis per duomenų atributus, būtinai pakeiskite parinkties pavadinimo didžiosios ir mažosios raidės tipą iš „camelCase“ į „kebab-case“. Pavyzdžiui, užuot naudoję data-bs-customClass="beautifier", naudokite data-bs-custom-class="beautifier".

Atminkite, kad saugumo sumetimais sanitize, sanitizeFnir allowListparinkčių negalima pateikti naudojant duomenų atributus.
vardas Tipas Numatytas apibūdinimas
animation loginis true Patarimui pritaikykite CSS išnykimo perėjimą
container styga | elementas | klaidinga false

Prideda patarimą prie konkretaus elemento. Pavyzdys container: 'body':. Ši parinktis ypač naudinga, nes leidžia įdėti patarimą dokumento sraute šalia paleidimo elemento – tai neleis patarimui nuslysti nuo paleidimo elemento keičiant lango dydį.

delay numeris | objektas 0

Patarimo rodymo ir slėpimo delsa (ms) – netaikoma rankinio paleidimo tipui

Jei numeris pateikiamas, uždelsimas taikomas abiem slėptuvėms/rodyti

Objekto struktūra yra tokia:delay: { "show": 500, "hide": 100 }

html loginis false

Leisti HTML patarime.

Jei tiesa, patarime esančios HTML žymos titlebus pateiktos patarime. Jei netiesa, innerTextturinys bus naudojamas įterpti į DOM.

Jei nerimaujate dėl XSS atakų, naudokite tekstą.

placement styga | funkcija 'top'

Kaip išdėstyti patarimo vietą – auto | viršuje | apačioje | paliko | teisingai.
Kai autonurodyta, jis dinamiškai pakeis patarimo kryptį.

Kai funkcija naudojama vietai nustatyti, ji iškviečiama, kai pirmasis argumentas yra patarimo DOM mazgas, o antrasis – aktyvuojantis elementas DOM mazgas. Kontekstas thisnustatytas į patarimo egzempliorių.

selector styga | klaidinga false Jei yra parinkiklis, patarimo objektai bus deleguoti nurodytiems tikslams. Praktiškai tai taip pat naudojama patarimams taikyti dinamiškai pridėtiems DOM elementams ( jQuery.onpalaikymas). Žiūrėkite tai ir informatyvų pavyzdį .
template styga '<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>'

Pagrindinis HTML, naudojamas kuriant patarimą.

Įrankio antgalis titlebus įšvirkščiamas į .tooltip-inner.

.tooltip-arrowtaps patarimo rodykle.

Tolimiausias apvyniojimo elementas turi turėti .tooltipklasę ir role="tooltip".

title styga | elementas | funkcija ''

Numatytoji pavadinimo reikšmė, jei titleatributo nėra.

Jei funkcija duota, ji bus iškviesta thisnurodant elementą, prie kurio pridėtas patarimas.

trigger styga 'hover focus'

Kaip suaktyvinamas patarimas – spustelėkite | užveskite | fokusuoti | vadovas. Galite perduoti kelis aktyviklius; atskirkite juos tarpu.

'manual'nurodo, kad patarimas bus programiškai suaktyvintas naudojant .show()ir metodus .hide(); .toggle()ši vertė negali būti derinama su jokiu kitu aktyvikliu.

'hover'savaime sukels patarimus, kurių negalima suaktyvinti naudojant klaviatūrą, ir jie turėtų būti naudojami tik tuo atveju, jei yra alternatyvių būdų, kaip perduoti tą pačią informaciją klaviatūros naudotojams.

fallbackPlacements masyvas ['top', 'right', 'bottom', 'left'] Apibrėžkite atsargines paskirties vietas pateikdami vietų sąrašą masyve (pagal pirmenybę). Daugiau informacijos rasite Popperio elgesio dokumentuose
boundary styga | elementas 'clippingParents' Patarimo perpildymo apribojimo riba (taikoma tik Popperio prevencinio perpildymo modifikatoriui). Pagal numatytuosius nustatymus jis 'clippingParents'priima ir gali priimti HTMLElement nuorodą (tik naudojant JavaScript). Daugiau informacijos rasite Popper's detectOverflow dokumentuose .
customClass styga | funkcija ''

Pridėkite klases prie patarimo, kai jis rodomas. Atminkite, kad šios klasės bus pridėtos prie visų šablone nurodytų klasių. Norėdami pridėti kelias klases, atskirkite jas tarpais: 'class-1 class-2'.

Taip pat galite perduoti funkciją, kuri turėtų grąžinti vieną eilutę su papildomais klasių pavadinimais.

sanitize loginis true Įjunkite arba išjunkite dezinfekavimą. Jei suaktyvinta 'template', 'title'parinktys bus išvalytos. Žr . „JavaScript“ dokumentacijos valymo priemonių skyrių .
allowList objektas Numatytoji reikšmė Objektas, kuriame yra leidžiamų atributų ir žymų
sanitizeFn null | funkcija null Čia galite pateikti savo dezinfekavimo funkciją. Tai gali būti naudinga, jei norite dezinfekuoti naudoti tam skirtą biblioteką.
offset masyvas | styga | funkcija [0, 0]

Patarimo poslinkis, palyginti su jo tikslu. Duomenų atributuose galite perduoti eilutę su kableliais atskirtomis reikšmėmis, pvz.:data-bs-offset="10,20"

Kai funkcija naudojama poslinkiui nustatyti, ji iškviečiama su objektu, kuriame yra popper vieta, nuoroda ir popper rects kaip pirmasis argumentas. Suaktyvinantis elementas DOM mazgas perduodamas kaip antrasis argumentas. Funkcija turi grąžinti masyvą su dviem skaičiais: .[skidding, distance]

Norėdami gauti daugiau informacijos, žr. Popper's poslinkio dokumentus .

popperConfig null | objektas | funkcija null

Norėdami pakeisti numatytąją Bootstrap Popper konfigūraciją, žr . Popper konfigūraciją .

Kai funkcija naudojama kuriant Popper konfigūraciją, ji iškviečiama su objektu, kuriame yra numatytoji Bootstrap Popper konfigūracija. Tai padeda naudoti ir sujungti numatytuosius nustatymus su savo konfigūracija. Funkcija turi grąžinti Popper konfigūracijos objektą.

Duomenų atributai atskiriems patarimams

Atskirų patarimų parinktis taip pat galima nurodyti naudojant duomenų atributus, kaip paaiškinta aukščiau.

Naudojant funkciją supopperConfig

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

Metodai

Asinchroniniai metodai ir perėjimai

Visi API metodai yra asinchroniniai ir pradeda perėjimą . Jie grįžta pas skambinantįjį, kai tik prasideda perėjimas, bet jam nepasibaigus . Be to, pereinamojo komponento metodo iškvietimas bus ignoruojamas .

Daugiau informacijos rasite mūsų JavaScript dokumentacijoje .

Rodyti

Atskleidžia elemento patarimą. Grįžta į skambinantįjį, kol patarimas iš tikrųjų nebuvo parodytas (ty prieš shown.bs.tooltipįvykį). Tai laikoma „rankiniu“ patarimo paleidimu. Patarimai su nulinio ilgio pavadinimais niekada nerodomi.

tooltip.show()

paslėpti

Slepia elemento patarimą. Grįžta į skambinantįjį, kol patarimas iš tikrųjų buvo paslėptas (ty prieš hidden.bs.tooltipįvykį). Tai laikoma „rankiniu“ patarimo paleidimu.

tooltip.hide()

perjungti

Perjungia elemento patarimą. Grįžta į skambinantįjį, kol patarimas iš tikrųjų buvo parodytas arba paslėptas (ty prieš įvykstant shown.bs.tooltiparba hidden.bs.tooltipįvykiui). Tai laikoma „rankiniu“ patarimo paleidimu.

tooltip.toggle()

disponuoti

Slepia ir sunaikina elemento patarimą (pašalina DOM elemente saugomus duomenis). Įrankių patarimai, kuriuose naudojamas delegavimas (kurie sukurti naudojant parinktį selector) , negali būti sunaikinami atskirai dėl palikuonių aktyviklio elementų.

tooltip.dispose()

įjungti

Suteikia elemento patarimui galimybę būti rodomas. Patarimai įjungti pagal numatytuosius nustatymus.

tooltip.enable()

išjungti

Pašalina galimybę rodyti elemento patarimą. Patarimas galės būti rodomas tik tada, kai jis bus įjungtas iš naujo.

tooltip.disable()

perjungti Įjungta

Perjungia galimybę rodyti arba paslėpti elemento patarimą.

tooltip.toggleEnabled()

atnaujinti

Atnaujina elemento patarimo padėtį.

tooltip.update()

getInstance

Statinis metodas, leidžiantis gauti patarimo egzempliorių, susietą su DOM elementu

var exampleTriggerEl = document.getElementById('example')
var tooltip = bootstrap.Tooltip.getInstance(exampleTriggerEl) // Returns a Bootstrap tooltip instance

getOrCreateInstance

Statinis metodas, leidžiantis gauti patarimo egzempliorių, susietą su DOM elementu, arba sukurti naują, jei jis nebuvo inicijuotas

var exampleTriggerEl = document.getElementById('example')
var tooltip = bootstrap.Tooltip.getOrCreateInstance(exampleTriggerEl) // Returns a Bootstrap tooltip instance

Renginiai

Renginio tipas apibūdinimas
show.bs.tooltip Šis įvykis suaktyvinamas iš karto, kai showiškviečiamas egzemplioriaus metodas.
shown.bs.tooltip Šis įvykis suaktyvinamas, kai patarimas tampa matomas vartotojui (lauks, kol bus baigti CSS perėjimai).
hide.bs.tooltip Šis įvykis suaktyvinamas iš karto, kai hideiškviečiamas egzemplioriaus metodas.
hidden.bs.tooltip Šis įvykis suaktyvinamas, kai patarimas baigiamas paslėpti nuo vartotojo (lauks, kol bus baigti CSS perėjimai).
inserted.bs.tooltip Šis įvykis suaktyvinamas po show.bs.tooltipįvykio, kai patarimo šablonas buvo įtrauktas į DOM.
var myTooltipEl = document.getElementById('myTooltip')
var tooltip = new bootstrap.Tooltip(myTooltipEl)

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

tooltip.hide()