Ana içeriğe geç Dokümanlar navigasyonuna atla
Check
in English

Araç ipuçları

Animasyonlar için CSS3 ve yerel başlık depolaması için data-bs-öznitelikleri kullanarak CSS ve JavaScript ile özel Bootstrap araç ipuçları eklemeye yönelik belgeler ve örnekler.

genel bakış

Araç ipucu eklentisini kullanırken bilmeniz gerekenler:

  • Araç ipuçları, konumlandırma için üçüncü taraf kitaplığı Popper'a güvenir . popper.min.js'yi önce eklemeli bootstrap.jsveya bootstrap.bundle.min.jsPopper içeren birini kullanmalısınız.
  • Araç ipuçları, performans nedenleriyle etkinleştirilir, bu nedenle bunları kendiniz başlatmanız gerekir .
  • Sıfır uzunlukta başlıklara sahip araç ipuçları hiçbir zaman görüntülenmez.
  • container: 'body'Daha karmaşık bileşenlerde (giriş gruplarımız, düğme gruplarımız vb.) oluşturma sorunlarını önlemek için belirtin .
  • Gizli öğelerde araç ipuçlarını tetiklemek işe yaramaz.
  • .disabledveya disabledöğeler için araç ipuçları , bir sarmalayıcı öğede tetiklenmelidir.
  • Birden çok satıra yayılan köprülerden tetiklendiğinde, araç ipuçları ortalanır. Bu davranıştan kaçınmak white-space: nowrap;için s üzerinde kullanın .<a>
  • Araç ipuçları, karşılık gelen öğeleri DOM'dan kaldırılmadan önce gizlenmelidir.
  • Gölge DOM içindeki bir öğe sayesinde araç ipuçları tetiklenebilir.

Hepsini anladın mı? Harika, bazı örneklerle nasıl çalıştıklarını görelim.

Varsayılan olarak, bu bileşen, açıkça izin verilmeyen tüm HTML öğelerini çıkaran yerleşik içerik temizleyiciyi kullanır. Daha fazla ayrıntı için JavaScript belgelerimizdeki dezenfektan bölümüne bakın.
Bu bileşenin animasyon efekti prefers-reduced-motionortam sorgusuna bağlıdır. Erişilebilirlik belgelerimizin azaltılmış hareket bölümüne bakın .

Örnekler

Araç ipuçlarını etkinleştir

Yukarıda belirtildiği gibi, kullanılmadan önce araç ipuçlarını başlatmanız gerekir. Bir sayfadaki tüm araç ipuçlarını başlatmanın bir yolu, bunları data-bs-toggleözniteliklerine göre seçmektir, örneğin:

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

Araç ipuçlarını görmek için aşağıdaki bağlantıların üzerine gelin:

Araç ipuçlarıyla birlikte bazı satır içi bağlantıları göstermek için yer tutucu metin . Bu artık sadece dolgu, katil yok. Yalnızca gerçek metnin varlığını taklit etmek için buraya yerleştirilen içerik . Ve tüm bunlar, size gerçek dünyadaki durumlarda kullanıldığında araç ipuçlarının nasıl görüneceği hakkında bir fikir vermek için. Bu nedenle , bağlantılarla ilgili bu ipuçlarının, bunları kendi sitenizde veya projenizde kullandıktan sonra pratikte nasıl çalışabileceğini umarız şimdi görmüşsünüzdür .

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>
titleYa da data-bs-titleHTML'nizde kullanmaktan çekinmeyin . Kullanıldığında , Popper , öğenin oluşturulduğu zaman titleile otomatik olarak değiştirecektir .data-bs-title

Özel araç ipuçları

v5.2.0'da eklendi

CSS değişkenlerini kullanarak araç ipuçlarının görünümünü özelleştirebilirsiniz . data-bs-custom-class="custom-tooltip"Özel görünümümüzü kapsamak ve yerel bir CSS değişkenini geçersiz kılmak için kullanmak için özel bir sınıf belirledik .

.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>

Talimatlar

Dört araç ipucu yönünü görmek için aşağıdaki düğmelerin üzerine gelin: üst, sağ, alt ve sol. RTL'de Bootstrap kullanılırken yönergeler yansıtılır.

<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>

Ve özel HTML eklendi:

<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>

Bir SVG ile:

CSS

Değişkenler

v5.2.0'da eklendi

Bootstrap'in gelişen CSS değişkenleri yaklaşımının bir parçası olarak, araç ipuçları artık .tooltipgelişmiş gerçek zamanlı özelleştirme için yerel CSS değişkenlerini kullanıyor. CSS değişkenlerinin değerleri Sass aracılığıyla ayarlanır, bu nedenle Sass özelleştirmesi de desteklenmeye devam eder.

  --#{$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};
  

Sas değişkenleri

$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

kullanım

Araç ipucu eklentisi, isteğe bağlı olarak içerik ve işaretleme oluşturur ve varsayılan olarak araç ipuçlarını tetikleyici öğelerinden sonra yerleştirir.

Araç ipucunu JavaScript aracılığıyla tetikleyin:

const exampleEl = document.getElementById('example')
const tooltip = new bootstrap.Tooltip(exampleEl, options)
taşma autovescroll

Araç ipucu konumu, bir üst kapsayıcı bizim gibi olduğunda overflow: autoveya overflow: scrollbizim gibi olduğunda otomatik olarak değişmeye çalışır .table-responsive, ancak yine de orijinal yerleşimin konumunu korur. Bunu çözmek için , varsayılan değeri geçersiz kılmak için boundaryseçeneği (seçeneği kullanan çevirme değiştiricisi için ) herhangi bir HTMLElement olarak ayarlayın , örneğin :popperConfig'clippingParents'document.body

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

İşaretleme

Bir araç ipucu için gerekli işaretleme yalnızca bir dataniteliktir ve titleHTML öğesinde bir araç ipucuna sahip olmak istersiniz. Bir araç ipucunun oluşturulan işaretlemesi, bir konum gerektirmesine rağmen (varsayılan olarak, topeklenti tarafından ayarlanır) oldukça basittir.

Araç ipuçlarını klavye ve yardımcı teknoloji kullanıcıları için çalıştırma

Yalnızca geleneksel olarak klavye odaklı ve etkileşimli (bağlantılar veya form denetimleri gibi) HTML öğelerine araç ipuçları eklemelisiniz. <span>Nitelik eklenerek isteğe bağlı HTML öğeleri (s gibi ) odaklanabilir hale getirilebilse de tabindex="0", bu, klavye kullanıcıları için etkileşimli olmayan öğeler üzerinde potansiyel olarak can sıkıcı ve kafa karıştırıcı sekme durakları ekleyecektir ve çoğu yardımcı teknoloji şu anda bu durumda araç ipucunu açıklamamaktadır. Ek olarak, yalnızca araç ipucunuz için tetikleyici olarak güvenmeyin hover, çünkü bu, araç ipuçlarınızın klavye kullanıcıları için tetiklenmesini imkansız hale getirecektir.

<!-- 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>

Devre dışı bırakılmış öğeler

Özniteliğe sahip öğeler disabledetkileşimli değildir, yani kullanıcılar bir araç ipucunu (veya açılır pencereyi) tetiklemek için odaklanamaz, üzerine gelemez veya tıklayamaz. Geçici bir çözüm olarak, araç ipucunu bir sarmalayıcıdan tetiklemek isteyeceksiniz <div>veya <span>ideal olarak 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>

Seçenekler

Seçenekler veri öznitelikleri veya JavaScript aracılığıyla iletilebildiğinden data-bs-, örneğinde olduğu gibi öğesine bir seçenek adı ekleyebilirsiniz data-bs-animation="{value}". Seçenekleri veri öznitelikleri üzerinden geçirirken , seçenek adının “ camelCase ” yerine “ kebab-case ” olarak değiştirildiğinden emin olun. Örneğin, data-bs-custom-class="beautifier"yerine kullanın data-bs-customClass="beautifier".

Bootstrap 5.2.0'dan itibaren, tüm bileşenler , bir JSON dizesi olarak basit bileşen yapılandırmasını barındırabilen deneysel bir ayrılmış veri özniteliğini destekler. data-bs-configBir öğe data-bs-config='{"delay":0, "title":123}'ve data-bs-title="456"özniteliklere sahip olduğunda, nihai titledeğer olacak 456ve ayrı veri öznitelikleri üzerinde verilen değerleri geçersiz kılacaktır data-bs-config. Ek olarak, mevcut veri öznitelikleri, gibi JSON değerlerini barındırabilir data-bs-delay='{"show":0,"hide":150}'.

Güvenlik nedenleriyle sanitize, sanitizeFn, ve allowListseçeneklerinin veri öznitelikleri kullanılarak sağlanamayacağını unutmayın.
İsim Tip Varsayılan Tanım
allowList nesne Varsayılan değer İzin verilen öznitelikleri ve etiketleri içeren nesne.
animation boole true Araç ipucuna bir CSS soluk geçişi uygulayın.
boundary dizi, eleman 'clippingParents' Araç ipucunun taşma kısıtlaması sınırı (yalnızca Popper'ın önlemeOverflow değiştiricisi için geçerlidir). Varsayılan olarak, 'clippingParents'bir HTMLElement referansıdır ve kabul edebilir (yalnızca JavaScript aracılığıyla). Daha fazla bilgi için Popper'ınDetectOverflow belgelerine bakın .
container dize, öğe, yanlış false Araç ipucunu belirli bir öğeye ekler. Örnek: container: 'body'. Bu seçenek, araç ipucunu belge akışında tetikleyici öğenin yanına yerleştirmenize olanak sağladığı için özellikle yararlıdır - bu, pencere yeniden boyutlandırma sırasında araç ipucunun tetikleyici öğeden uzaklaşmasını önler.
customClass dize, işlev '' Gösterildiğinde araç ipucuna sınıflar ekleyin. Bu sınıfların, şablonda belirtilen sınıflara ek olarak ekleneceğini unutmayın. Birden çok sınıf eklemek için bunları boşluklarla ayırın: 'class-1 class-2'. Ek sınıf adları içeren tek bir dize döndürmesi gereken bir işlevi de iletebilirsiniz.
delay sayı, nesne 0 Araç ipucunu (ms) gösterme ve gizleme gecikmesi—manuel tetik türü için geçerli değildir. Bir numara verilirse, her iki gizle/göster için gecikme uygulanır. Nesne yapısı: delay: { "show": 500, "hide": 100 }.
fallbackPlacements dizi ['top', 'right', 'bottom', 'left'] Dizideki yerleşimlerin bir listesini sağlayarak (tercih sırasına göre) yedek yerleşimleri tanımlayın. Daha fazla bilgi için Popper'ın davranış belgelerine bakın .
html boole false Araç ipucunda HTML'ye izin verin. Doğruysa, araç ipucundaki HTML etiketleri araç ipucunda titleişlenecektir. Yanlışsa innerText, DOM'a içerik eklemek için özellik kullanılacaktır. XSS saldırılarından endişe ediyorsanız metin kullanın.
offset dizi, dizi, işlev [0, 0] Araç ipucunun hedefine göre ofseti. Aşağıdaki gibi virgülle ayrılmış değerlerle veri özniteliklerinde bir dize iletebilirsiniz: data-bs-offset="10,20". Ofseti belirlemek için bir fonksiyon kullanıldığında, ilk argümanı olarak popper yerleşimini, referansı ve popper rect'lerini içeren bir nesne ile çağrılır. Tetikleyici öğe DOM düğümü, ikinci argüman olarak iletilir. İşlev, iki sayı içeren bir dizi döndürmelidir: kayma , mesafe . Daha fazla bilgi için Popper'ın ofset belgelerine bakın .
placement dize, işlev 'top' Araç ipucu nasıl konumlandırılır: otomatik, üst, alt, sol, sağ. autoBelirtildiğinde, araç ipucunu dinamik olarak yeniden yönlendirir . Yerleşimi belirlemek için bir işlev kullanıldığında, ilk argüman olarak araç ipucu DOM düğümü ve ikinci argüman olarak tetikleyici öğe DOM düğümü ile çağrılır. Bağlam this, araç ipucu örneğine ayarlanır.
popperConfig boş, nesne, işlev null Bootstrap'in varsayılan Popper yapılandırmasını değiştirmek için, Popper'ın yapılandırmasına bakın . Popper konfigürasyonunu oluşturmak için bir fonksiyon kullanıldığında, Bootstrap'in varsayılan Popper konfigürasyonunu içeren bir nesne ile çağrılır. Varsayılanı kendi yapılandırmanızla kullanmanıza ve birleştirmenize yardımcı olur. İşlev, Popper için bir yapılandırma nesnesi döndürmelidir.
sanitize boole true Temizlemeyi etkinleştirin veya devre dışı bırakın. Etkinleştirilirse 'template', 'content'seçenekler 'title'sterilize edilecektir.
sanitizeFn boş, işlev null Burada kendi sterilize etme işlevinizi sağlayabilirsiniz. Sanitasyon yapmak için özel bir kitaplık kullanmayı tercih ediyorsanız bu yararlı olabilir.
selector dize, yanlış false Bir seçici sağlanırsa, araç ipucu nesneleri belirtilen hedeflere devredilecektir. Pratikte bu, dinamik olarak eklenen DOM öğelerine ( jQuery.ondestek) araç ipuçlarını uygulamak için de kullanılır. Bu soruna ve bilgilendirici bir örneğe bakın .
template sicim '<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>' Araç ipucunu oluştururken kullanılacak temel HTML. Araç ipucu title, .tooltip-inner. .tooltip-arrowaraç ipucunun oku olacak. En dıştaki sarmalayıcı öğe, ve .tooltipsınıfına sahip olmalıdır role="tooltip".
title dizi, eleman, fonksiyon '' titleÖznitelik yoksa varsayılan başlık değeri . Bir fonksiyon verilirse, thispopover'ın eklendiği öğeye referansı ile çağrılır.
trigger sicim 'hover focus' İpucu nasıl tetiklenir: tıklayın, üzerine gelin, odaklanın, manuel. Birden çok tetikleyici iletebilirsiniz; boşlukla ayırın. araç ipucunun , ve yöntemleri 'manual'aracılığıyla programlı olarak tetikleneceğini belirtir ; bu değer başka bir tetikleyici ile birleştirilemez. kendi başına klavye aracılığıyla tetiklenemeyen araç ipuçlarıyla sonuçlanacaktır ve yalnızca klavye kullanıcıları için aynı bilgileri iletmek için alternatif yöntemler varsa kullanılmalıdır..tooltip('show').tooltip('hide').tooltip('toggle')'hover'

Bireysel araç ipuçları için veri öznitelikleri

Bireysel araç ipuçları için seçenekler alternatif olarak yukarıda açıklandığı gibi veri öznitelikleri kullanılarak belirlenebilir.

ile işlevi kullanmapopperConfig

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

yöntemler

Asenkron yöntemler ve geçişler

Tüm API yöntemleri eşzamansızdır ve bir geçiş başlatır . Geçiş başlar başlamaz ancak bitmeden arayan kişiye geri dönerler . Ek olarak, geçiş yapan bir bileşen üzerindeki bir yöntem çağrısı yoksayılacaktır .

Daha fazla bilgi için JavaScript belgelerimize bakın .

Yöntem Tanım
disable Bir öğenin ipucunun gösterilme özelliğini kaldırır. Araç ipucu yalnızca yeniden etkinleştirildiğinde gösterilebilir.
dispose Bir öğenin ipucunu gizler ve yok eder (DOM öğesinde depolanan verileri kaldırır). Temsilci kullanan (seçenek kullanılarak oluşturulan) araç ipuçları , selectorsoyundan gelen tetikleyici öğelerde tek tek yok edilemez.
enable Bir öğenin ipucuna gösterilme yeteneği verir. Araç ipuçları varsayılan olarak etkindir.
getInstance Bir DOM öğesiyle ilişkili araç ipucu örneğini almanıza veya başlatılmamış olması durumunda yeni bir tane oluşturmanıza olanak tanıyan statik yöntem.
getOrCreateInstance Bir DOM öğesiyle ilişkili araç ipucu örneğini almanıza veya başlatılmamış olması durumunda yeni bir tane oluşturmanıza olanak tanıyan statik yöntem.
hide Bir öğenin ipucunu gizler. Araç ipucu gizlenmeden (yani hidden.bs.tooltipolay gerçekleşmeden önce) arayana geri döner. Bu, araç ipucunun "manuel" tetiklenmesi olarak kabul edilir.
setContent Başlatıldıktan sonra araç ipucunun içeriğini değiştirmenin bir yolunu verir.
show Bir öğenin ipucunu ortaya çıkarır. Araç ipucu fiilen gösterilmeden önce (yani shown.bs.tooltipolay meydana gelmeden önce) arayana geri döner. Bu, araç ipucunun "manuel" tetiklenmesi olarak kabul edilir. Sıfır uzunlukta başlıklara sahip araç ipuçları hiçbir zaman görüntülenmez.
toggle Bir öğenin ipucunu değiştirir. Araç ipucu gerçekten gösterilmeden veya gizlenmeden (yani shown.bs.tooltipveya hidden.bs.tooltipolayı gerçekleşmeden önce) arayana geri döner. Bu, araç ipucunun "manuel" tetiklenmesi olarak kabul edilir.
toggleEnabled Bir öğenin ipucunun gösterilme veya gizlenme özelliğini değiştirir.
update Bir öğenin ipucunun konumunu günceller.
const tooltip = bootstrap.Tooltip.getInstance('#example') // Returns a Bootstrap tooltip instance

// setContent example
tooltip.setContent({ '.tooltip-inner': 'another title' })
Yöntem , her özellik anahtarının açılır şablon içinde geçerli bir seçici olduğu setContentve ilgili her bir özellik değerinin | | | objectstringstringelementfunctionnull

Olaylar

Etkinlik Tanım
hide.bs.tooltip hideBu olay, örnek yöntemi çağrıldığında hemen tetiklenir .
hidden.bs.tooltip Bu olay, açılır pencerenin kullanıcıdan gizlenmesi bittiğinde tetiklenir (CSS geçişlerinin tamamlanmasını bekler).
inserted.bs.tooltip Bu olay, show.bs.tooltiparaç ipucu şablonu DOM'a eklendiğinde olaydan sonra tetiklenir.
show.bs.tooltip Bu olay, showörnek yöntemi çağrıldığında hemen tetiklenir.
shown.bs.tooltip Bu olay, açılır pencere kullanıcıya görünür hale getirildiğinde tetiklenir (CSS geçişlerinin tamamlanmasını bekler).
const myTooltipEl = document.getElementById('myTooltip')
const tooltip = bootstrap.Tooltip.getOrCreateInstance(myTooltipEl)

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

tooltip.hide()