Patarimai
Dokumentacija ir pavyzdžiai, kaip pridėti pasirinktinių „Bootstrap“ įrankių patarimų su CSS ir „JavaScript“, naudojant CSS3 animacijai ir duomenų atributams 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.js
kuriame yra Popper! - Jei kuriate „JavaScript“ iš šaltinio, tam reikia
util.js
. - 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
.disabled
arbadisabled
elementai 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.
prefers-reduced-motion
medijos 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-toggle
atributą:
$(function () {
$('[data-toggle="tooltip"]').tooltip()
})
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.
<button type="button" class="btn btn-secondary" data-toggle="tooltip" data-placement="top" title="Tooltip on top">
Tooltip on top
</button>
<button type="button" class="btn btn-secondary" data-toggle="tooltip" data-placement="right" title="Tooltip on right">
Tooltip on right
</button>
<button type="button" class="btn btn-secondary" data-toggle="tooltip" data-placement="bottom" title="Tooltip on bottom">
Tooltip on bottom
</button>
<button type="button" class="btn btn-secondary" data-toggle="tooltip" data-placement="left" title="Tooltip on left">
Tooltip on left
</button>
Ir pridėjus tinkintą HTML:
<button type="button" class="btn btn-secondary" data-toggle="tooltip" data-html="true" title="<em>Tooltip</em> <u>with</u> <b>HTML</b>">
Tooltip with HTML
</button>
Naudojimas
Patarimų papildinys generuoja turinį ir žymėjimą pagal poreikį ir pagal numatytuosius nustatymus pateikia patarimus po jų aktyviklio elemento.
Suaktyvinkite patarimą naudodami „JavaScript“:
$('#example').tooltip(options)
Perpildymas auto
irscroll
Patarimo padėtis bandoma automatiškai pakeisti, kai pirminiame sudėtiniame rodinyje yra overflow: auto
arba overflow: scroll
patinka mūsų .table-responsive
, bet vis tiek išlaikoma pradinė paskirties vietos padėtis. Norėdami išspręsti šią boundary
parinktį, nustatykite bet ką kitą, o ne numatytąją reikšmę 'scrollParent'
, pvz 'window'
.:
$('#example').tooltip({ boundary: 'window' })
Žymėjimas
Reikalingas patarimo žymėjimas yra tik data
atributas ir title
HTML elemente, kuriame norite turėti patarimą. Sugeneruotas patarimo žymėjimas yra gana paprastas, nors tam reikia padėties (pagal numatytuosius nustatymus, top
kurią 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 hover
patarimo aktyvikliu, nes dėl to klaviatūros naudotojai negalės suaktyvinti patarimų.
<!-- HTML to write -->
<a href="#" data-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="arrow"></div>
<div class="tooltip-inner">
Some tooltip text!
</div>
</div>
Išjungti elementai
Elementai su disabled
atributu 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 problemą, norėsite suaktyvinti patarimą iš aplanko <div>
arba <span>
, idealiu atveju, kad būtų galima sufokusuoti klaviatūrą naudojant tabindex="0"
, ir nepaisyti pointer-events
išjungto elemento.
<span class="d-inline-block" tabindex="0" data-toggle="tooltip" title="Disabled tooltip">
<button class="btn btn-primary" style="pointer-events: none;" 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-
, kaip ir data-animation=""
.
sanitize
,
sanitizeFn
ir
whiteList
parinkčių negalima pateikti naudojant duomenų atributus.
vardas | Tipas | Numatytas | apibūdinimas |
---|---|---|---|
animacija | loginis | tiesa | Patarimui pritaikykite CSS išnykimo perėjimą |
konteineris | styga | elementas | klaidinga | klaidinga | Prideda patarimą prie konkretaus elemento. Pavyzdys |
uždelsimas | 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: |
html | loginis | klaidinga | Leisti HTML patarime. Jei tiesa, patarime esančios HTML žymos Jei nerimaujate dėl XSS atakų, naudokite tekstą. |
išdėstymas | styga | funkcija | "viršuje" | Kaip išdėstyti patarimo vietą – auto | viršuje | apačioje | paliko | teisingai. Kai funkcija naudojama vietai nustatyti, ji iškviečiama, kai pirmasis argumentas yra patarimo DOM mazgas, o antrasis – aktyvuojantis elementas DOM mazgas. Kontekstas |
parinkiklis | styga | klaidinga | klaidinga | Jei yra parinkiklis, patarimo objektai bus deleguoti nurodytiems tikslams. Praktiškai tai taip pat naudojama įrankių patarimams taikyti dinamiškai pridėtiems DOM elementams ( jQuery.on palaikymas). Žiūrėkite tai ir informatyvų pavyzdį . |
šabloną | styga | '<div class="tooltip" role="tooltip"><div class="arrow"></div><div class="tooltip-inner"></div></div>' |
Pagrindinis HTML, naudojamas kuriant patarimą. Įrankio antgalis
Tolimiausias apvyniojimo elementas turi turėti |
titulą | styga | elementas | funkcija | '' | Numatytoji pavadinimo reikšmė, jei Jei funkcija duota, ji bus iškviesta |
paleidiklis | styga | „fokusuoti ant pelės žymeklio“ | Kaip suaktyvinamas patarimas – spustelėkite | užveskite | fokusuoti | vadovas. Galite perduoti kelis aktyviklius; atskirkite juos tarpu.
|
kompensuoti | numeris | styga | funkcija | 0 | Patarimo poslinkis, palyginti su jo tikslu. Kai funkcija naudojama poslinkiui nustatyti, ji iškviečiama naudojant objektą, kuriame yra poslinkio duomenys kaip pirmasis argumentas. Funkcija turi grąžinti objektą su tokia pačia struktūra. Suaktyvinantis elementas DOM mazgas perduodamas kaip antrasis argumentas. Norėdami gauti daugiau informacijos, žr. Popper's poslinkio dokumentus . |
atsarginė vieta | styga | masyvas | "apversti" | Leiskite nurodyti, kurią poziciją Popper naudos atšaukdamas. Daugiau informacijos rasite Popperio elgesio 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: Taip pat galite perduoti funkciją, kuri turėtų grąžinti vieną eilutę su papildomais klasių pavadinimais. |
riba | styga | elementas | 'scrollParent' | Patarimo perpildymo apribojimo riba. Priima , , arba HTMLElement nuorodos reikšmes 'viewport' ( 'window' tik 'scrollParent' JavaScript). Daugiau informacijos rasite Popper's preventOverflow dokumentuose . |
dezinfekuoti | loginis | tiesa | Įjunkite arba išjunkite dezinfekavimą. Jei suaktyvinta 'template' , 'title' parinktys bus išvalytos. Žr . „JavaScript“ dokumentacijos valymo priemonių skyrių . |
baltas sąrašas | objektas | Numatytoji reikšmė | Objektas, kuriame yra leidžiamų atributų ir žymų |
dezinfekuotiFn | null | funkcija | nulinis | Čia galite pateikti savo dezinfekavimo funkciją. Tai gali būti naudinga, jei norite dezinfekuoti naudoti tam skirtą biblioteką. |
popperConfig | null | objektas | nulinis | Norėdami pakeisti numatytąją Bootstrap Popper konfigūraciją, žr. Popper konfigūraciją |
Duomenų atributai atskiriems patarimams
Atskirų patarimų parinktis taip pat galima nurodyti naudojant duomenų atributus, kaip paaiškinta aukščiau.
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 .
$().tooltip(options)
Prie elementų rinkinio prideda patarimo tvarkyklę.
.tooltip('show')
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.
$('#element').tooltip('show')
.tooltip('hide')
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.
$('#element').tooltip('hide')
.tooltip('toggle')
Perjungia elemento patarimą. Grįžta į skambinantįjį, kol patarimas iš tikrųjų buvo parodytas arba paslėptas (ty prieš įvykstant shown.bs.tooltip
arba hidden.bs.tooltip
įvykiui). Tai laikoma „rankiniu“ patarimo paleidimu.
$('#element').tooltip('toggle')
.tooltip('dispose')
Slepia ir sunaikina elemento patarimą. Įrankių patarimai, kuriuose naudojamas delegavimas (kurie sukurti naudojant parinktį selector
) , negali būti sunaikinami atskirai dėl palikuonių aktyviklio elementų.
$('#element').tooltip('dispose')
.tooltip('enable')
Suteikia elemento patarimui galimybę būti rodomas. Patarimai įjungti pagal numatytuosius nustatymus.
$('#element').tooltip('enable')
.tooltip('disable')
Pašalina galimybę rodyti elemento patarimą. Patarimas galės būti rodomas tik tada, kai jis bus įjungtas iš naujo.
$('#element').tooltip('disable')
.tooltip('toggleEnabled')
Perjungia galimybę rodyti arba paslėpti elemento patarimą.
$('#element').tooltip('toggleEnabled')
.tooltip('update')
Atnaujina elemento patarimo padėtį.
$('#element').tooltip('update')
Renginiai
Renginio tipas | apibūdinimas |
---|---|
Rodyti.bs.patarimą | Šis įvykis suaktyvinamas iš karto, kai show iškviečiamas egzemplioriaus metodas. |
parodyta.bs.patarimas | Šis įvykis suaktyvinamas, kai patarimas tampa matomas vartotojui (lauks, kol bus baigti CSS perėjimai). |
paslėpti.bs.patarimas | Šis įvykis suaktyvinamas iš karto, kai hide iškviečiamas egzemplioriaus metodas. |
paslėptas.bs.patarimas | Šis įvykis suaktyvinamas, kai patarimas baigiamas paslėpti nuo vartotojo (lauks, kol bus baigti CSS perėjimai). |
įterptas.bs.patarimas | Šis įvykis suaktyvinamas po show.bs.tooltip įvykio, kai patarimo šablonas buvo įtrauktas į DOM. |
$('#myTooltip').on('hidden.bs.tooltip', function () {
// do something...
})