Tooltips
Belgekirin û mînakên ji bo lê zêdekirina şîretên Bootstrap-ê yên xwerû yên bi CSS û JavaScript-ê bi karanîna CSS3 ji bo anîmasyon û dane-bs-taybetmendiyên ji bo hilanîna sernavê herêmî.
Têgihiştinî
Tiştên ku divê hûn zanibin dema ku pêveka tooltip bikar tînin:
- Serişteyên amûran ji bo pozîsyonê xwe dispêrin pirtûkxaneya partiya sêyemîn Popper . Pêdivî ye ku hûn popper.min.js berî
bootstrap.js
, an yekabootstrap.bundle.min.js
ku Popper heye bikar bînin. - Serişteyên amûran ji ber sedemên performansê têne hilbijartin, ji ber vê yekê divê hûn bi xwe wan dest pê bikin .
- Sernavên amûran ên bi sernavên zero-dirêj qet nayên xuyang kirin.
- Diyar
container: 'body'
bikin ku hûn di hêmanên tevlihevtir de (mîna komên têketina me, komên bişkokê, hwd) pirsgirêkan çênekin. - Teqandina şîretên amûran li ser hêmanên veşartî dê nexebite.
- Pêdivî ye ku şîretên amûran ji bo
.disabled
andisabled
hêmanan li ser hêmanek pêçandî werin xebitandin. - Dema ku ji hyperlînkên ku pir rêzan vedigirin, şîretên amûran dê bêne navend kirin.
white-space: nowrap;
Li ser s-ya xwe bikar bînin<a>
ku ji vê tevgerê dûr bixin. - Berî ku hêmanên wan ên têkildar ji DOM-ê werin rakirin divê şîretên amûran werin veşartin.
- Serişteyên amûran dikarin bi saya hêmanek di hundurê DOM-a siya de werin desteser kirin.
Hemî got? Baş e, em bibînin ka ew bi çend mînakan çawa dixebitin.
prefers-reduced-motion
medyayê ve girêdayî ye. Binêre
beşa tevgera kêmkirî ya belgeya gihîştina me .
Examples
Serişteyên amûran çalak bike
Wekî ku li jor behs kir, divê hûn şîretên amûran bidin destpêkirin berî ku ew werin bikar anîn. Yek rê ji bo destpêkirina hemî serişteyên amûran li ser rûpelek dê ev be ku hûn wan li gorî taybetmendiya xwe data-bs-toggle
hilbijêrin, mîna:
const tooltipTriggerList = document.querySelectorAll('[data-bs-toggle="tooltip"]')
const tooltipList = [...tooltipTriggerList].map(tooltipTriggerEl => new bootstrap.Tooltip(tooltipTriggerEl))
Serişteyên amûran li ser girêdan
Li ser zencîreyên jêrîn bihêlin ku hûn serişteyên amûran bibînin:
Nivîsara cîhê ku hin girêdanên hundurîn bi şîretên amûran re nîşan bide. Ev naha tenê dagirtî ye, ne kujer e. Naveroka ku li vir hatî danîn tenê ji bo ku hebûna nivîsa rastîn teqlîd bike. Û hemî ew tenê ji bo ku hûn ramanek bidin we ka dê çawa şîretên amûran di rewşên cîhana rastîn de werin bikar anîn. Ji ber vê yekê hêvîdarim ku we naha dîtiye ka van serişteyên li ser girêdanan çawa dikarin di pratîkê de bixebitin, gava ku hûn wan li ser malper an projeya xwe bikar bînin.
<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-title
Dema ku
title
tê bikar anîn, Popper wê bixweber bi
data-bs-title
dema ku hêman tê pêşkêş kirin veguherîne.
Pêşniyarên amûran ên xweser
Di v5.2.0 de hate zêdekirinHûn dikarin bi karanîna guhêrbarên CSS -ê xuyangê serişteyên amûran xweş bikin . Me çînek xwerû pê re saz kir data-bs-custom-class="custom-tooltip"
da ku xuyangê xweya xwerû berfireh bike û wê bikar bîne da ku guhêrbarek CSS ya herêmî bişopîne.
.custom-tooltip {
--bs-tooltip-bg: var(--bs-primary);
}
<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>
Tarîfa bikaranînê
Li ser bişkokên li jêr bigerin da ku çar rêwerzên amûran bibînin: jor, rast, jêr û çep. Dema ku Bootstrap-ê di RTL-ê de bikar tînin rêwerz têne xuyang kirin.
<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>
Û bi HTML-ya xwerû lê zêde kirin:
<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>
Bi SVG:
CSS
Variables
Di v5.2.0 de hate zêdekirinWekî beşek ji nêzîkatiya guhêrbarên CSS-ê yên pêşveçûyî yên Bootstrap, şîretên amûran naha guhêrbarên CSS-ê yên herêmî li ser .tooltip
ji bo xwerûkirina rast-dema pêşkeftî bikar tînin. Nirxên ji bo guhêrbarên CSS bi Sass ve têne danîn, ji ber vê yekê xwerûkirina Sass hîn jî piştgirî ye.
--#{$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};
Guherbarên 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
Bikaranîna
Pêveka tooltip li gorî daxwazê naverok û nîşankirinê çêdike, û ji hêla xwerû ve şîretên amûran li dû hêmana wan a tîrêjê bi cîh dike.
Serişteya amûrê bi JavaScriptê vekin:
const exampleEl = document.getElementById('example')
const tooltip = new bootstrap.Tooltip(exampleEl, options)
Overflow auto
ûscroll
Dema ku konteynirek dêûbav hebe overflow: auto
an overflow: scroll
wekî me hebe, pozîsyona şîreta amûrê hewl dide ku bixweber biguhezîne .table-responsive
, lê dîsa jî pozîsyona cîhê orjînal diparêze. Ji bo çareserkirina vê, boundary
vebijarkê (ji bo guhezkera flip ku popperConfig
vebijarkê bikar tîne) li ser her HTMLElementê bicîh bikin ku nirxa xwerû, 'clippingParents'
, wek document.body
:
const tooltip = new bootstrap.Tooltip('#example', {
boundary: document.body // or document.querySelector('#boundary')
})
Markup
Nîşana pêdivî ya ji bo serişteyek amûrek tenê data
taybetmendiyek e û title
li ser hêmana HTML-ê hûn dixwazin şîreta amûrekê hebe. Nîşana hilberandî ya amûrek pir hêsan e, her çend ew pozîsyonek hewce dike (ji hêla xwerû, ji top
hêla pêvekê ve hatî saz kirin).
Çêkirina şîretên amûran ji bo bikarhênerên klavyeyê û teknolojiya arîkar dixebitin
Pêdivî ye ku hûn tenê şîretên amûran li hêmanên HTML-ê ku bi kevneşopî li ser klavyeyê ve girêdayî ne û înteraktîf in (wek girêdan an kontrolên formê) zêde bikin. Her çend hêmanên HTML-ê yên keyfî (wek <span>
s) dikarin bi lêzêdekirina tabindex="0"
taybetmendiyê bêne balkişandin, ev ê ji bo bikarhênerên klavyeyê rawestgehên tabloyên potansiyel acizker û tevlihev li ser hêmanên ne-înteraktîf zêde bike, û piraniya teknolojiyên arîkar naha di vê rewşê de şîreta amûrê ragihînin. Digel vê yekê, tenê xwe nespêrin hover
wekî teşqela şîreta amûra xwe, ji ber ku ev ê nekaribe şîretên amûra we ji bo bikarhênerên klavyeyê vebike.
<!-- 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>
hêmanên astengdar
Hêmanên bi disabled
taybetmendiyê ne înteraktîf in, tê vê wateyê ku bikarhêner nikanin balê bikşînin, hildin, an li wan bikirtînin da ku amûrek (an popover) bişopînin. Wekî çareseriyek, hûn ê bixwazin ku şîreta amûrê ji pêçanek <div>
an jî <span>
, ku bi îdeal e ku bi karanîna klavyeyê-focusable hatî çêkirin, derxînin tabindex="0"
.
<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>
Vebijêrk
Ji ber ku vebijark dikarin bi taybetmendiyên daneyan an JavaScriptê ve werin derbas kirin, hûn dikarin navek vebijarkê lê zêde bikin data-bs-
, wekî di data-bs-animation="{value}"
. Dema ku vebijarkan bi taybetmendiyên daneyê re derbas bikin, pê ewle bin ku hûn celebê doza navê vebijarkê ji " camelCase " veguherînin " kebab-case ". Mînakî, data-bs-custom-class="beautifier"
li şûna bikar bînin data-bs-customClass="beautifier"
.
Ji Bootstrap 5.2.0-ê, hemî pêkhate taybetmendiyek daneya veqetandî ya ceribandinêdata-bs-config
piştgirî dikin ku dikare veavakirina hêmanek hêsan wekî rêzek JSON bihewîne. Dema ku hêmanek hebe data-bs-config='{"delay":0, "title":123}'
û data-bs-title="456"
taybetmendî hebe, nirxa paşîn title
dê bibe 456
û taybetmendiyên daneya veqetandî dê nirxên ku li ser hatine dayîn derbas bikin data-bs-config
. Digel vê yekê, taybetmendiyên daneya heyî dikarin nirxên JSON ên mîna data-bs-delay='{"show":0,"hide":150}'
.
sanitize
,
sanitizeFn
, û
allowList
bi karanîna taybetmendiyên daneyê nayên peyda kirin.
Nav | Awa | Destçûnî | Terîf |
---|---|---|---|
allowList |
tişt | Nirxa standard | Tişta ku taybetmendî û etîketên destûr dihewîne. |
animation |
boolean | true |
Veguheztinek fade ya CSS-ê li ser amûrê bicîh bikin. |
boundary |
têl, hêman | 'clippingParents' |
Sînorê astengiya Overflow ya şîreta amûrê (tenê ji bo guhezkera preventOverflow ya Popper derbas dibe). Bi xwerû, ew e 'clippingParents' û dikare referansek HTMLElement (tenê bi JavaScriptê) qebûl bike. Ji bo bêtir agahdarî serî li belgeyên detectOverflow yên Popper bidin . |
container |
têl, hêman, derewîn | false |
Serişteya amûrê li hêmanek taybetî vedike. Mînak container: 'body' :. Ev vebijark bi taybetî bikêrhatî ye ku ew dihêle hûn şîreta amûrê di herikîna belgeyê de li nêzikî hêmana vekêşanê bi cih bikin - ku dê rê li ber ku şîreta amûrê di dema mezinbûna pencereyê de ji hêmana vekêşanê dûr nekeve. |
customClass |
string, fonksiyon | '' |
Dema ku ew tê xuyang kirin çînên li ser tooltip zêde bikin. Bala xwe bidinê ku ev ders dê ji bilî dersên ku di şablonê de hatine destnîşan kirin werin zêdekirin. Ji bo zêdekirina çînên pirjimar, wan bi cihan veqetînin 'class-1 class-2' :. Her weha hûn dikarin fonksiyonek derbas bikin ku divê rêzek yekane ya ku navên pola zêde vedihewîne vegerîne. |
delay |
hejmar, tişt | 0 |
Dereng nîşankirin û veşartina şîreta amûrê (ms)-ji bo celebê destkêşana destan derbas nabe. Ger jimarek were peyda kirin, dereng hem ji bo veşêrin/nîşandanê tê sepandin. Struktura Objekt ev e delay: { "show": 500, "hide": 100 } :. |
fallbackPlacements |
rêzî | ['top', 'right', 'bottom', 'left'] |
Bi peydakirina navnîşek cîhên di rêzê de (li gorî rêza bijare) cîhên paşverû diyar bikin. Ji bo bêtir agahdarî serî li belgeyên tevgerê yên Popper bidin . |
html |
boolean | false |
Destûrê bide HTML-ê di şîreta amûrê de. Ger rast be, etîketên HTML-ê yên di şîreta amûrê de title dê di şîreta amûrê de werin pêşkêş kirin. Ger xelet be, innerText dê milk were bikar anîn da ku naverokê têxe DOM-ê. Heke hûn ji êrîşên XSS-ê ditirsin, nivîsê bikar bînin. |
offset |
array, string, fonksiyon | [0, 0] |
Veguheztina amûrê li gorî armanca xwe. Hûn dikarin rêzek di taybetmendiyên daneyê de bi nirxên ji hev veqetandî wek: data-bs-offset="10,20" . Dema ku fonksiyonek ji bo destnîşankirina offset tê bikar anîn, ew bi tiştek ku cîhê popper, referans, û rekteyên popper wekî argumana wê ya yekem vedihewîne tê gotin. Hêmana destkêşanê ya DOM-ê wekî argumana duyemîn derbas dibe. Fonksiyon divê arrayek bi du hejmaran vegerîne: şkandin , dûr . Ji bo bêtir agahdarî serî li belgeyên offset ên Popper bidin . |
placement |
string, fonksiyon | 'top' |
Meriv çawa şîreta amûrê bi cih dike: otomatîk, jor, jêrîn, çep, rast. Dema auto ku were destnîşan kirin, ew ê bi dînamîk veguhezîne serişteya amûrê. Dema ku fonksiyonek ji bo destnîşankirina cîhê tê bikar anîn, ew bi girêka amûrê DOM-ê wekî argumana wê ya yekem û hêmana vekêşanê wekî girêka DOM-ê wekî duyemîn tê gotin. Têkilî this ji bo nimûneya tooltip tête danîn. |
popperConfig |
null, nesne, fonksiyon | null |
Ji bo guherandina veavakirina Popperê ya xwerû ya Bootstrap, li veavakirina Popper binêre . Dema ku fonksiyonek ji bo afirandina veavakirina Popper tê bikar anîn, ew bi hêmanek ku veavakirina Popper-a xwerû ya Bootstrap-ê vedihewîne tê gotin. Ew ji we re dibe alîkar ku hûn xwerû bi veavakirina xwe re bikar bînin û hev bikin. Pêdivî ye ku fonksiyon ji bo Popper tiştek veavakirinê vegerîne. |
sanitize |
boolean | true |
Paqijkirinê çalak bikin an neçalak bikin. Ger were çalak kirin 'template' , 'content' û 'title' vebijark dê bêne paqij kirin. |
sanitizeFn |
null, fonksiyon | null |
Li vir hûn dikarin fonksiyona xweya paqijkirinê peyda bikin. Heke hûn tercîh dikin ku pirtûkxaneyek taybetî bikar bînin ku paqijkirinê bikin ev dikare kêrhatî be. |
selector |
têl, derewîn | false |
Ger hilbijarkek were peyda kirin, dê tiştên şîreta amûrê ji armancên diyarkirî re werin şandin. Di pratîkê de, ev tê bikar anîn da ku serişteyên amûrê li ser hêmanên DOM-ê yên dînamîkî yên zêdekirî ( jQuery.on piştgirî) jî bicîh bikin. Vê mijarê û mînakek agahdar bibînin . |
template |
ben | '<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>' |
Bingeha HTML-ê ji bo ku dema çêkirina şîreta amûrê bikar bîne. The tooltip's title dê di nav de were derzî kirin .tooltip-inner . .tooltip-arrow dê bibe tîra amûrê. Divê hêmana wrapperê ya herî derveyî .tooltip pola û role="tooltip" . |
title |
têl, hêman, fonksiyon | '' |
title Ger taybetmendî tune be nirxa sernavê ya xwerû. Ger fonksiyonek were dayîn, ew ê bi this koma referansa xwe re ji hêmana ku popover pê ve girêdayî ye were gazî kirin. |
trigger |
ben | 'hover focus' |
Çawa şîreta amûrê tê derxistin: bitikîne, hilavêt, baldarî, manual. Hûn dikarin gelek teşqeleyan derbas bikin; wan bi cihekî veqetînin. 'manual' destnîşan dike ku şîreta amûrê dê bi bernameyî bi riya .tooltip('show') , .tooltip('hide') û .tooltip('toggle') rêbazan ve were xebitandin; ev nirx nikare bi ti kêşek din re were hev kirin. 'hover' bi tena serê xwe dê şîretên amûran çêbike ku nikaribin bi rêya klavyeyê ve werin xebitandin, û divê tenê heke rêbazên alternatîf ji bo gihandina heman agahiyê ji bo bikarhênerên klavyeyê hebin were bikar anîn. |
Taybetmendiyên daneyê ji bo serişteyên amûran ên kesane
Vebijarkên ji bo serişteyên amûran ên takekesî dikarin bi karanîna taybetmendiyên daneyê, wekî ku li jor hatî ravekirin, bi alternatîf werin destnîşan kirin.
Bikaranîna fonksiyonê bipopperConfig
const tooltip = new bootstrap.Tooltip(element, {
popperConfig(defaultBsPopperConfig) {
// const newPopperConfig = {...}
// use defaultBsPopperConfig if needed...
// return newPopperConfig
}
})
Methods
Rêbaz û veguherînên Asynchronous
Hemî rêbazên API-ê asynkron in û veguherînek dest pê dikin . Gava ku veguhêz dest pê kir lê berî ku biqede ew vedigerin bangkerê . Wekî din, bangek rêbazek li ser pêkhateyek veguhêz dê were paşguh kirin.
Awa | Terîf |
---|---|
disable |
Kapasîteya nîşankirina amûrek hêmanek jê dike. Serişteya amûrê tenê heke ji nû ve were çalak kirin dê bikaribe were xuyang kirin. |
dispose |
Tîpa amûrekê vedişêre û hilweşîne (Daneyên hilanîn ên li ser hêmana DOM-ê radike). Pêşniyarên amûran ên ku delegasyonê bikar tînin (yên ku bi vebijarkê têne afirandin ) selector nekarin bi rengekî ferdî li ser hêmanên nifûsê werin hilweşandin. |
enable |
Kapasîteya nîşankirinê dide şîreta amûrek elementek. Pêşniyarên amûran ji hêla xwerû ve têne çalak kirin. |
getInstance |
Rêbaza statîkî ya ku dihêle hûn mînakek amûrek ku bi hêmanek DOM-ê ve girêdayî ye bistînin, an heke ew nehatibe destpêkirin yek nû biafirînin. |
getOrCreateInstance |
Rêbaza statîkî ya ku dihêle hûn mînakek amûrek ku bi hêmanek DOM-ê ve girêdayî ye bistînin, an heke ew nehatibe destpêkirin yek nû biafirînin. |
hide |
Tîpa amûrekê vedişêre. Berî ku şîreta amûrê bi rastî veşêre (ango berî ku hidden.bs.tooltip bûyer çêbibe) vedigere bangkerê. Ev wekî "bi destan" vekêşana amûrê tê hesibandin. |
setContent |
Rêyek dide ku hûn naveroka amûrê piştî destpêkirina wê biguhezînin. |
show |
Tîpa amûrek hêmanek eşkere dike. Berî ku şîreta amûrê bi rastî were xuyang kirin (ango berî ku shown.bs.tooltip bûyer çêbibe) vedigere bangewazî. Ev wekî "bi destan" vekêşana amûrê tê hesibandin. Sernavên amûran ên bi sernavên zero-dirêj qet nayên xuyang kirin. |
toggle |
Destûra amûrek hêmanek vedike. Berî ku şîreta amûrê bi rastî were xuyang kirin an veşartin (ango berî ku bûyer shown.bs.tooltip an hidden.bs.tooltip bûyer çêbibe) vedigere bangkerê. Ev wekî "bi destan" vekêşana amûrê tê hesibandin. |
toggleEnabled |
Kapasîteya nîşankirina an veşartina amûrek hêmanek vedigire. |
update |
Pozîsyona amûrek hêmanek nûve dike. |
const tooltip = bootstrap.Tooltip.getInstance('#example') // Returns a Bootstrap tooltip instance
// setContent example
tooltip.setContent({ '.tooltip-inner': 'another title' })
setContent
dipejirîne
object
, ku her kilîtek taybetmendî
string
hilbijêrek derbasdar e di nav şablona popover de, û her taybetmendiyek-nirxa têkildar dikare bibe
string
|
element
|
function
|
null
Events
Bûyer | Terîf |
---|---|
hide.bs.tooltip |
hide Dema ku rêbaza nimûneyê hate gazîkirin , ev bûyer tavilê tê şewitandin . |
hidden.bs.tooltip |
Dema ku popover ji bikarhênerê veşartî xilas bû ev bûyer tê şewitandin (dê li bendê bimîne ku veguherînên CSS temam bibin). |
inserted.bs.tooltip |
Ev bûyer piştî show.bs.tooltip bûyera dema ku şablonê tooltip li DOM-ê hate zêdekirin tê şewitandin. |
show.bs.tooltip |
show Dema ku rêbaza nimûneyê tê gazî kirin ev bûyer tavilê dişewite. |
shown.bs.tooltip |
Dema ku popover ji bikarhêner re xuya bibe ev bûyer tê şewitandin (dê li bendê bimîne ku veguheztinên CSS biqede). |
const myTooltipEl = document.getElementById('myTooltip')
const tooltip = bootstrap.Tooltip.getOrCreateInstance(myTooltipEl)
myTooltipEl.addEventListener('hidden.bs.tooltip', () => {
// do something...
})
tooltip.hide()