Työkaluvinkit
Dokumentaatio ja esimerkkejä mukautettujen Bootstrap-työkaluvihjeiden lisäämisestä CSS:n ja JavaScriptin kanssa käyttämällä CSS3:a animaatioita varten ja data-bs-attribuutteja paikallista otsikon tallennusta varten.
Yleiskatsaus
Asiat, jotka on hyvä tietää käytettäessä työkaluvihje-laajennusta:
- Työkaluvihjeiden paikannus perustuu kolmannen osapuolen Popper -kirjastoon. Sinun tulee lisätä popper.min.js ennen bootstrap.js:ää tai käyttää
bootstrap.bundle.min.js
/bootstrap.bundle.js
joka sisältää Popperin, jotta työkaluvihjeet toimivat! - Työkaluvihjeet ovat käytettävissä suorituskykysyistä, joten sinun on alustettava ne itse .
- Työkaluvihjeitä, joiden otsikot ovat nollapituisia, ei koskaan näytetä.
- Määritä
container: 'body'
, jotta vältät hahmonnusongelmia monimutkaisemmissa osissa (kuten syöttöryhmämme, painikeryhmämme jne.). - Työkaluvihjeiden käynnistäminen piilotetuista elementeistä ei toimi.
- Työkaluvihjeitä
.disabled
taidisabled
elementtejä on käynnistettävä kääreelementissä. - Kun työkaluvihjeet käynnistetään hyperlinkeistä, jotka kattavat useita rivejä, työkaluvihjeet keskitetään. Vältä tämä käyttäytyminen käyttämällä sitä
white-space: nowrap;
.<a>
- Työkaluvihjeet on piilotettava ennen kuin niitä vastaavat elementit on poistettu DOM:sta.
- Työkaluvihjeitä voidaan laukaista varjo-DOM:n sisällä olevan elementin ansiosta.
prefers-reduced-motion
mediakyselystä. Katso
esteettömyysdokumentaation osio liikkeen vähentämisestä .
Onko sinulla kaikki tämä? Hienoa, katsotaan kuinka ne toimivat joidenkin esimerkkien avulla.
Esimerkki: Ota työkaluvihjeet käyttöön kaikkialla
Yksi tapa alustaa kaikki sivulla olevat työkaluvihjeet on valita ne niiden data-bs-toggle
määritteen perusteella:
var tooltipTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]'))
var tooltipList = tooltipTriggerList.map(function (tooltipTriggerEl) {
return new bootstrap.Tooltip(tooltipTriggerEl)
})
Esimerkkejä
Vie hiiri alla olevien linkkien päälle nähdäksesi työkaluvinkit:
Paikkamerkkiteksti, joka esittelee joitain upotettuja linkkejä työkaluvihjeillä. Tämä on nyt vain täyte, ei tappaja. Sisältö on sijoitettu tähän vain matkimaan oikean tekstin läsnäoloa . Ja kaikki tämä vain antaaksemme sinulle käsityksen siitä, miltä työkaluvihjeet näyttäisivät todellisissa tilanteissa. Joten toivottavasti olet nyt nähnyt, kuinka nämä linkkien työkaluvinkit voivat toimia käytännössä, kun käytät niitä omalla sivustollasi tai projektissasi.
Vie hiiri alla olevien painikkeiden päälle nähdäksesi neljä työkaluvihjeen suuntaa: ylhäältä, oikealta, alhaalta ja vasemmalta. Ohjeet peilataan käytettäessä Bootstrapia RTL:ssä.
<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>
Ja mukautettu HTML lisätty:
<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>
SVG:llä:
Sass
Muuttujat
$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;
Käyttö
Työkaluvihje-laajennus luo sisältöä ja merkintöjä pyynnöstä ja sijoittaa työkaluvihjeet oletuksena niiden triggerelementin perään.
Käynnistä työkaluvihje JavaScriptin kautta:
var exampleEl = document.getElementById('example')
var tooltip = new bootstrap.Tooltip(exampleEl, options)
Ylivuoto auto
jascroll
Työkaluvihjeen sijainti yrittää muuttua automaattisesti, kun ylätason säilössä on meidän overflow: auto
, mutta se säilyttää alkuperäisen sijoittelun sijainnin. Voit ratkaista tämän asettamalla asetukseksi ( vaihtoehtoa käyttävälle kääntömuokkaimelle) mille tahansa HTMLElementille ohittaaksesi oletusarvon , kuten :overflow: scroll
.table-responsive
boundary
popperConfig
'clippingParents'
document.body
var exampleEl = document.getElementById('example')
var tooltip = new bootstrap.Tooltip(exampleEl, {
boundary: document.body // or document.querySelector('#boundary')
})
Merkintä
Työkaluvihjeen vaadittava merkintä on vain data
attribuutti ja title
HTML-elementissä, johon haluat työkaluvihjeen. Työkaluvihjeen luotu merkintä on melko yksinkertaista, vaikka se vaatii sijainnin (oletusarvoisesti top
laajennuksen asettama).
Työkaluvihjeiden saaminen toimimaan näppäimistön ja aputekniikan käyttäjille
Lisää työkaluvihjeitä vain sellaisiin HTML-elementteihin, jotka ovat perinteisesti kohdistettavissa näppäimistöön ja ovat vuorovaikutteisia (kuten linkit tai lomakeohjaimet). Vaikka mielivaltaiset HTML-elementit (kuten <span>
s) voidaan tehdä tarkennettavissa lisäämällä tabindex="0"
attribuutti, tämä lisää mahdollisesti ärsyttäviä ja hämmentäviä sarkaimia ei-interaktiivisiin elementteihin näppäimistön käyttäjille, ja useimmat avustavat tekniikat eivät tällä hetkellä ilmoita työkaluvihjettä tässä tilanteessa. Älä myöskään luota pelkästään hover
työkaluvihjeesi laukaisuun, koska tämä tekee työkaluvihjeistäsi mahdotonta käynnistää näppäimistön käyttäjille.
<!-- 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>
Poistetut elementit
Attribuutilla varustetut elementit disabled
eivät ole vuorovaikutteisia, mikä tarkoittaa, että käyttäjät eivät voi tarkentaa, viedä hiiren osoitinta tai napsauttaa niitä käynnistääkseen työkaluvihjeen (tai ponnahdusikkunan). Kiertokeinona sinun kannattaa käynnistää työkaluvihje kääreestä <div>
tai <span>
ihanteellisesti näppäimistöllä tarkennetusta käyttämällä 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>
Vaihtoehdot
Vaihtoehdot voidaan välittää tietomääritteiden tai JavaScriptin kautta. Liitä tietomääritteissä vaihtoehdon nimi kohtaan data-bs-
, kuten kohdassa data-bs-animation=""
. Muista vaihtaa vaihtoehdon nimen tapaustyyppi camelCase-muotoon kebab-case, kun välität valinnat tietomääritteiden kautta. Käytä esimerkiksi sen sijaan, että data-bs-customClass="beautifier"
käytät data-bs-custom-class="beautifier"
.
sanitize
,
sanitizeFn
, ja
allowList
valintoja ei voida toimittaa dataattribuuttien avulla.
Nimi | Tyyppi | Oletus | Kuvaus |
---|---|---|---|
animation |
boolean | true |
Käytä työkaluvihjeeseen CSS-häivytystä |
container |
merkkijono | elementti | väärä | false |
Liittää työkaluvihjeen tiettyyn elementtiin. Esimerkki: |
delay |
numero | esine | 0 |
Työkaluvihjeen näyttämisen ja piilottamisen viive (ms) - ei koske manuaalista liipaisintyyppiä Jos numero annetaan, viivettä käytetään molempiin piilottamiseen/näyttöön Objektin rakenne on: |
html |
boolean | false |
Salli HTML työkaluvihjeessä. Jos tosi, työkaluvihjeissä olevat HTML-tunnisteet Käytä tekstiä, jos olet huolissasi XSS-hyökkäyksistä. |
placement |
merkkijono | toiminto | 'top' |
Työkaluvihjeen sijoittaminen - auto | alkuun | pohja | vasemmalle | oikein. Kun funktiota käytetään sijoittelun määrittämiseen, sitä kutsutaan työkaluvihjeen DOM-solmu ensimmäisenä argumenttina ja liipaisuelementin DOM-solmu toisena argumenttina. Konteksti |
selector |
merkkijono | väärä | false |
Jos valitsin on käytössä, työkaluvihjeobjektit delegoidaan määritetyille kohteille. Käytännössä tätä käytetään myös työkaluvihjeiden soveltamiseen dynaamisesti lisättyihin DOM-elementteihin ( jQuery.on tuki). Katso tämä ja informatiivinen esimerkki . |
template |
merkkijono | '<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>' |
Perus-HTML, jota käytetään työkaluvihjeen luomisessa. Työkalukärjet
Uloimmassa kääreelementissä tulee olla |
title |
merkkijono | elementti | toiminto | '' |
Otsikon oletusarvo, jos Jos funktio on annettu, sitä kutsutaan ja sen |
trigger |
merkkijono | 'hover focus' |
Kuinka työkaluvihje käynnistetään - napsauta | leijua | keskittyä | manuaalinen. Voit läpäistä useita laukaisimia; erota ne välilyönnillä.
|
fallbackPlacements |
joukko | ['top', 'right', 'bottom', 'left'] |
Määritä varasijoittelut tarjoamalla luettelo sijoitteluista taulukossa (etujärjestyksen mukaan). Lisätietoja on Popperin käyttäytymisdokumenteissa |
boundary |
merkkijono | elementti | 'clippingParents' |
Työkaluvihjeen ylivuotorajoitusraja (koskee vain Popperin preventOverflow-muuttajaa). Oletuksena se hyväksyy 'clippingParents' ja voi hyväksyä HTMLElement-viittauksen (vain JavaScriptin kautta). Lisätietoja on Popperin detectOverflow -dokumenteissa . |
customClass |
merkkijono | toiminto | '' |
Lisää luokat työkaluvihjeeseen, kun se näytetään. Huomaa, että nämä luokat lisätään mallissa määritettyjen luokkien lisäksi. Voit lisätä useita luokkia erottamalla ne välilyönneillä: Voit myös välittää funktion, jonka pitäisi palauttaa yksi merkkijono, joka sisältää muita luokkien nimiä. |
sanitize |
boolean | true |
Ota desinfiointi käyttöön tai poista se käytöstä. Jos aktivoitu 'template' , 'title' vaihtoehdot desinfioidaan. Katso desinfiointiosio JavaScript-dokumentaatiossamme . |
allowList |
esine | Oletusarvo | Objekti, joka sisältää sallitut attribuutit ja tunnisteet |
sanitizeFn |
nolla | toiminto | null |
Täällä voit toimittaa oman desinfiointitoiminnon. Tästä voi olla hyötyä, jos haluat käyttää desinfiointiin erityistä kirjastoa. |
offset |
joukko | merkkijono | toiminto | [0, 0] |
Työkaluvihjeen siirtymä suhteessa sen kohteeseen. Voit välittää tietomääritteissä merkkijonon pilkuilla erotetuilla arvoilla, kuten: Kun funktiota käytetään määrittämään siirtymä, sitä kutsutaan objektilla, joka sisältää ensimmäisenä argumenttina popperin sijoittelun, viitteen ja popper rects. Liipaisuelementin DOM-solmu välitetään toisena argumenttina. Funktion on palautettava taulukko, jossa on kaksi numeroa: . Lisätietoja on Popperin offset-dokumenteissa . |
popperConfig |
nolla | esine | toiminto | null |
Jos haluat muuttaa Bootstrapin Popperin oletusasetuksia, katso Popperin asetukset . Kun funktiota käytetään Popper-kokoonpanon luomiseen, sitä kutsutaan objektilla, joka sisältää Bootstrapin oletusarvoisen Popper-kokoonpanon. Se auttaa sinua käyttämään ja yhdistämään oletusasetuksia omaan kokoonpanoosi. Toiminnon on palautettava Popperin määritysobjekti. |
Tietoattribuutit yksittäisille työkaluvihjeille
Vaihtoehtoisesti yksittäisten työkaluvihjeiden asetukset voidaan määrittää käyttämällä dataattribuutteja, kuten edellä on selitetty.
Käytä toimintoa kanssapopperConfig
var tooltip = new bootstrap.Tooltip(element, {
popperConfig: function (defaultBsPopperConfig) {
// var newPopperConfig = {...}
// use defaultBsPopperConfig if needed...
// return newPopperConfig
}
})
menetelmät
Asynkroniset menetelmät ja siirtymät
Kaikki API - menetelmät ovat asynkronisia ja aloittavat siirtymän . He palaavat soittajan luo heti siirtymisen alkaessa, mutta ennen sen päättymistä . Lisäksi siirtyvän komponentin menetelmäkutsu jätetään huomioimatta .
näytä
Näyttää elementin työkaluvihjeen. Palaa soittajalle ennen kuin työkaluvihje on todellisuudessa näytetty (eli ennen shown.bs.tooltip
tapahtumaa). Tätä pidetään työkaluvihjeen "manuaalisena" käynnistämisenä. Työkaluvihjeitä, joiden otsikot ovat nollapituisia, ei koskaan näytetä.
tooltip.show()
piilottaa
Piilottaa elementin työkaluvihjeen. Palaa soittajalle ennen kuin työkaluvihje on todella piilotettu (eli ennen hidden.bs.tooltip
tapahtumaa). Tätä pidetään työkaluvihjeen "manuaalisena" käynnistämisenä.
tooltip.hide()
vaihtaa
Vaihtaa elementin työkaluvihjeen päälle/pois. Palaa soittajalle ennen kuin työkaluvihje on todellisuudessa näytetty tai piilotettu (eli ennen shown.bs.tooltip
tai hidden.bs.tooltip
tapahtumaa). Tätä pidetään työkaluvihjeen "manuaalisena" käynnistämisenä.
tooltip.toggle()
hävittää
Piilottaa ja tuhoaa elementin työkaluvihjeen (poistaa DOM-elementtiin tallennetut tiedot). Delegointia käyttäviä työkaluvihjeitä (jotka luodaan vaihtoehdolla selector
) ei voida tuhota yksitellen jälkeläisissä triggerelementeissä.
tooltip.dispose()
ota käyttöön
Antaa elementin työkaluvihjeelle mahdollisuuden näkyä. Työkaluvihjeet ovat oletuksena käytössä.
tooltip.enable()
Poista käytöstä
Poistaa mahdollisuuden näyttää elementin työkaluvihjettä. Työkaluvinkki voidaan näyttää vain, jos se otetaan uudelleen käyttöön.
tooltip.disable()
toggleEnabled
Vaihtaa elementin työkaluvihjeen näyttämisen tai piilotuksen.
tooltip.toggleEnabled()
päivittää
Päivittää elementin työkaluvihjeen sijainnin.
tooltip.update()
getInstance
Staattinen menetelmä, jonka avulla voit saada DOM-elementtiin liittyvän työkaluvihje-ilmentymän
var exampleTriggerEl = document.getElementById('example')
var tooltip = bootstrap.Tooltip.getInstance(exampleTriggerEl) // Returns a Bootstrap tooltip instance
getOrCreateInstance
Staattinen menetelmä, jonka avulla voit saada työkaluvihje-ilmentymän, joka liittyy DOM-elementtiin, tai luoda uuden, jos sitä ei alustettu
var exampleTriggerEl = document.getElementById('example')
var tooltip = bootstrap.Tooltip.getOrCreateInstance(exampleTriggerEl) // Returns a Bootstrap tooltip instance
Tapahtumat
Tapahtumatyyppi | Kuvaus |
---|---|
show.bs.tooltip |
Tämä tapahtuma käynnistyy välittömästi, kun show instanssimenetelmää kutsutaan. |
shown.bs.tooltip |
Tämä tapahtuma käynnistyy, kun työkaluvihje on tehty näkyväksi käyttäjälle (odottaa CSS-siirtymien valmistumista). |
hide.bs.tooltip |
Tämä tapahtuma käynnistyy välittömästi, kun hide instanssimenetelmää on kutsuttu. |
hidden.bs.tooltip |
Tämä tapahtuma käynnistyy, kun työkaluvihje on piilotettu käyttäjältä (odottaa CSS-siirtymien valmistumista). |
inserted.bs.tooltip |
Tämä tapahtuma käynnistyy show.bs.tooltip tapahtuman jälkeen, kun työkaluvihjemalli on lisätty DOM:iin. |
var myTooltipEl = document.getElementById('myTooltip')
var tooltip = new bootstrap.Tooltip(myTooltipEl)
myTooltipEl.addEventListener('hidden.bs.tooltip', function () {
// do something...
})
tooltip.hide()