رفتن به محتوای اصلی به پیمایش اسناد بروید
in English

نکات ابزار

مستندات و مثال‌هایی برای افزودن نکات سفارشی Bootstrap با CSS و جاوا اسکریپت با استفاده از CSS3 برای انیمیشن‌ها و داده‌ها-bs-ویژگی‌ها برای ذخیره‌سازی عنوان محلی.

بررسی اجمالی

نکاتی که باید هنگام استفاده از افزونه tooltip بدانید:

  • نکات ابزار برای موقعیت یابی به کتابخانه شخص ثالث Popper متکی هستند . شما باید popper.min.js را قبل از bootstrap.js اضافه کنید یا از bootstrap.bundle.min.js/ bootstrap.bundle.jsکه حاوی Popper است استفاده کنید تا راهنمای ابزار کار کند!
  • راهنمای ابزار به دلایل عملکردی انتخاب شده است، بنابراین باید خودتان آنها را مقداردهی اولیه کنید .
  • راهنمای ابزار با عناوین با طول صفر هرگز نمایش داده نمی شود.
  • container: 'body'برای جلوگیری از بروز مشکلات در مؤلفه‌های پیچیده‌تر (مانند گروه‌های ورودی، گروه‌های دکمه‌ها و غیره) آن را مشخص کنید .
  • راه‌اندازی نکات ابزار در عناصر پنهان کار نخواهد کرد.
  • نکات ابزار برای .disabledیا disabledعناصر باید بر روی یک عنصر پوششی فعال شوند.
  • هنگامی که از لینک هایی که چندین خط را تشکیل می دهند، راهنمایی های ابزار در مرکز قرار می گیرند. برای جلوگیری از این رفتار از white-space: nowrap;روی s خود استفاده کنید.<a>
  • نکات ابزار باید قبل از حذف عناصر مربوطه از DOM پنهان شوند.
  • راهنمای ابزار را می توان به لطف عنصری در داخل یک DOM سایه فعال کرد.
به‌طور پیش‌فرض، این مؤلفه از ضدعفونی‌کننده محتوای داخلی استفاده می‌کند، که عناصر HTML را که به صراحت مجاز نیستند حذف می‌کند. برای جزئیات بیشتر به بخش ضدعفونی کننده در اسناد جاوا اسکریپت ما مراجعه کنید.
prefers-reduced-motionاثر انیمیشن این مؤلفه به پرسش رسانه بستگی دارد . بخش حرکت کاهش یافته اسناد دسترسی ما را ببینید.

همه اینها را فهمیدید؟ عالی است، بیایید ببینیم آنها با چند مثال چگونه کار می کنند.

مثال: راهنمای ابزار را در همه جا فعال کنید

یک راه برای مقداردهی اولیه تمام نکات ابزار در یک صفحه این است که آنها را با ویژگی آنها انتخاب کنید data-bs-toggle:

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

مثال ها

برای دیدن نکات ابزار، نشانگر را روی پیوندهای زیر نگه دارید:

متن جای جای برای نشان دادن برخی پیوندهای درون خطی با راهنمایی ابزار. این اکنون فقط پرکننده است، بدون قاتل. محتوایی که در اینجا فقط برای تقلید از حضور متن واقعی قرار داده شده است. و همه اینها فقط برای این است که به شما ایده بدهد که راهنمایی‌های ابزار هنگام استفاده در موقعیت‌های واقعی چگونه به نظر می‌رسند. بنابراین امیدواریم که اکنون متوجه شده باشید که چگونه این نکات ابزار روی پیوندها ، زمانی که از آنها در سایت یا پروژه خود استفاده می کنید، در عمل می توانند کار کنند.

ماوس را روی دکمه‌های زیر نگه دارید تا چهار جهت راهنمای ابزار را ببینید: بالا، راست، پایین و چپ. هنگام استفاده از 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>

و با 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>

با SVG:

ساس

متغیرها

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

استفاده

افزونه tooltip محتوا و نشانه‌گذاری را بر اساس تقاضا تولید می‌کند و به‌طور پیش‌فرض راهنمایی‌های ابزار را بعد از عنصر ماشه قرار می‌دهد.

راهنمای ابزار را از طریق جاوا اسکریپت فعال کنید:

var exampleEl = document.getElementById('example')
var tooltip = new bootstrap.Tooltip(exampleEl, options)
سرریز autoوscroll

موقعیت راهنمای ابزار تلاش می‌کند تا زمانی که یک ظرف والد ما را داشته overflow: autoباشد یا overflow: scrollمانند ما باشد، به طور خودکار تغییر کند .table-responsive، اما همچنان موقعیت قرارگیری اصلی را حفظ می‌کند. برای حل این مشکل، boundaryگزینه (برای تغییر دهنده با استفاده از popperConfigگزینه) را روی هر HTMLElement تنظیم کنید تا مقدار پیش فرض را لغو کند 'clippingParents'، مانند document.body:

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

نشانه گذاری

نشانه گذاری مورد نیاز برای یک Tooltip فقط یک dataویژگی است و titleدر عنصر HTML شما می خواهید یک Tooltip داشته باشید. نشانه گذاری ایجاد شده از یک راهنمای ابزار نسبتاً ساده است، اگرچه به یک موقعیت نیاز دارد (به طور پیش فرض، topتوسط افزونه تنظیم شده است).

ایجاد راهنمایی ابزار برای کاربران صفحه کلید و فناوری کمکی

شما فقط باید نکات ابزار را به عناصر HTML اضافه کنید که به طور سنتی قابل تمرکز روی صفحه کلید و تعاملی هستند (مانند پیوندها یا کنترل های فرم). اگرچه عناصر دلخواه HTML (مانند <span>s) را می توان با افزودن این tabindex="0"ویژگی قابل تمرکز کرد، اما این باعث می شود که بالقوه آزاردهنده و گیج کننده برگه ها در عناصر غیر تعاملی برای کاربران صفحه کلید اضافه شود، و اکثر فناوری های کمکی در حال حاضر در این شرایط راهنمای ابزار را اعلام نمی کنند. علاوه بر این، تنها به عنوان محرک راهنمای راهنمای ابزار خود متکی نباشید hover، زیرا این کار باعث می‌شود که راهنمایی‌های ابزار شما برای کاربران صفحه‌کلید فعال نشود.

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

عناصر غیر فعال

عناصر دارای disabledویژگی تعاملی نیستند، به این معنی که کاربران نمی‌توانند برای راه‌اندازی یک راهنمای ابزار (یا پاپاور) روی آن‌ها تمرکز کنند، ماوس را نگه دارند یا کلیک کنند. به‌عنوان راه‌حل، می‌خواهید راهنمای ابزار را از یک لفاف <div>یا <span>با استفاده از کیبورد قابل تمرکز ایده‌آل فعال 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>

گزینه ها

گزینه ها را می توان از طریق ویژگی های داده یا جاوا اسکریپت منتقل کرد. data-bs-برای ویژگی های داده، نام گزینه را به مانند در ضمیمه کنید data-bs-animation="". هنگام عبور گزینه ها از طریق ویژگی های داده، حتماً نوع حروف نام گزینه را از camelCase به kebab-case تغییر دهید. به عنوان مثال، به جای استفاده از data-bs-customClass="beautifier"، استفاده کنید data-bs-custom-class="beautifier".

توجه داشته باشید که به دلایل امنیتی گزینه های sanitize, sanitizeFnو allowListنمی توانند با استفاده از ویژگی های داده ارائه شوند.
نام تایپ کنید پیش فرض شرح
animation بولی true یک انتقال محو CSS را به راهنمای ابزار اعمال کنید
container رشته | عنصر | نادرست false

راهنمای ابزار را به یک عنصر خاص اضافه می کند. مثال: container: 'body'. این گزینه به ویژه از این جهت مفید است که به شما امکان می‌دهد راهنمای ابزار را در جریان سند در نزدیکی عنصر راه‌انداز قرار دهید - که مانع از شناور شدن راهنمای ابزار از عنصر راه‌انداز در طول تغییر اندازه پنجره می‌شود.

delay شماره | هدف - شی 0

تأخیر در نمایش و پنهان کردن راهنمای ابزار (ms) - برای نوع ماشه دستی اعمال نمی شود

اگر شماره ای ارائه شود، تاخیر برای هر دو پنهان/نمایش اعمال می شود

ساختار شیء عبارت است از:delay: { "show": 500, "hide": 100 }

html بولی false

اجازه دادن به HTML در راهنمای ابزار.

اگر درست باشد، تگ‌های HTML در راهنمای ابزار در راهنمای ابزار titleارائه می‌شوند. اگر نادرست باشد، innerTextاز ویژگی برای درج محتوا در DOM استفاده می شود.

اگر نگران حملات XSS هستید از متن استفاده کنید.

placement رشته | عملکرد 'top'

نحوه قرار دادن راهنمای ابزار - خودکار | بالا | پایین | چپ | درست.
وقتی autoمشخص شد، به صورت پویا راهنمای ابزار را تغییر جهت می دهد.

هنگامی که یک تابع برای تعیین مکان استفاده می شود، با گره DOM به عنوان اولین آرگومان و عنصر راه اندازی گره DOM به عنوان دومین آرگومان فراخوانی می شود. متن thisروی نمونه راهنمای ابزار تنظیم شده است.

selector رشته | نادرست false اگر انتخابگر ارائه شود، اشیاء راهنمای ابزار به اهداف مشخص شده واگذار می شوند. در عمل، از این روش برای اعمال راهنمایی های ابزار برای عناصر DOM به صورت پویا ( jQuery.onپشتیبانی) استفاده می شود. این و یک مثال آموزنده را ببینید .
template رشته '<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>'

پایه HTML برای استفاده در هنگام ایجاد راهنمای ابزار.

راهنمای ابزار به titleداخل تزریق می شود .tooltip-inner.

.tooltip-arrowبه پیکان راهنمای ابزار تبدیل خواهد شد.

بیرونی ترین عنصر wrapper باید .tooltipکلاس و را role="tooltip"داشته باشد.

title رشته | عنصر | عملکرد ''

titleاگر مشخصه وجود نداشته باشد، مقدار عنوان پیش‌فرض است.

اگر تابعی داده شود، با thisمجموعه مرجع خود به عنصری که راهنمای ابزار به آن متصل است فراخوانی می شود.

trigger رشته 'hover focus'

راهنمای ابزار چگونه راه اندازی می شود - کلیک کنید | شناور | تمرکز | کتابچه راهنمای. شما ممکن است چندین محرک عبور دهید. آنها را با فاصله جدا کنید.

'manual'نشان می دهد که راهنمای ابزار به صورت برنامه نویسی از طریق متدهای .show()و فعال .hide()می شود. .toggle()این مقدار را نمی توان با هیچ محرک دیگری ترکیب کرد.

'hover'به خودی خود منجر به راهنمایی‌های ابزاری می‌شود که نمی‌توانند از طریق صفحه‌کلید راه‌اندازی شوند، و تنها در صورتی باید استفاده شوند که روش‌های جایگزین برای انتقال همان اطلاعات برای کاربران صفحه‌کلید وجود داشته باشد.

fallbackPlacements آرایه ['top', 'right', 'bottom', 'left'] با ارائه لیستی از قرارگیری ها در آرایه (به ترتیب اولویت) مکان های جایگزین را تعریف کنید. برای اطلاعات بیشتر به اسناد رفتاری پوپر مراجعه کنید
boundary رشته | عنصر 'clippingParents' مرز محدودیت سرریز از راهنمای ابزار (فقط برای اصلاح کننده Popper's preventOverflow اعمال می شود). به طور پیش‌فرض 'clippingParents'می‌تواند یک مرجع HTMLElement را بپذیرد (فقط از طریق جاوا اسکریپت). برای اطلاعات بیشتر به Popper's detectOverflow docs مراجعه کنید.
customClass رشته | عملکرد ''

وقتی راهنمای ابزار نشان داده شد، کلاس‌ها را به آن اضافه کنید. توجه داشته باشید که این کلاس ها علاوه بر کلاس های مشخص شده در قالب اضافه خواهند شد. برای اضافه کردن چند کلاس، آنها را با فاصله از هم جدا کنید 'class-1 class-2':

همچنین می‌توانید تابعی را ارسال کنید که باید یک رشته حاوی نام‌های کلاس اضافی را برگرداند.

sanitize بولی true پاکسازی را فعال یا غیرفعال کنید. در صورت فعال شدن 'template'و 'title'گزینه ها ضد عفونی می شوند. بخش ضدعفونی کننده را در مستندات جاوا اسکریپت ما ببینید.
allowList هدف - شی مقدار پیش فرض شیئی که حاوی ویژگی ها و برچسب های مجاز است
sanitizeFn null | عملکرد null در اینجا می توانید عملکرد ضدعفونی کننده خود را ارائه دهید. اگر ترجیح می دهید از یک کتابخانه اختصاصی برای انجام پاکسازی استفاده کنید، می تواند مفید باشد.
offset آرایه | رشته | عملکرد [0, 0]

افست راهنمای ابزار نسبت به هدفش. شما می توانید یک رشته را در ویژگی های داده با مقادیر جدا شده با ویرگول مانند:data-bs-offset="10,20"

هنگامی که یک تابع برای تعیین offset استفاده می شود، با یک شی حاوی popper placement، مرجع، و popper rects به عنوان اولین آرگومان فراخوانی می شود. گره DOM عنصر محرک به عنوان آرگومان دوم ارسال می شود. تابع باید یک آرایه با دو عدد برگرداند: .[skidding, distance]

برای اطلاعات بیشتر به اسناد افست پوپر مراجعه کنید .

popperConfig null | شی | عملکرد null

برای تغییر تنظیمات Popper پیش‌فرض Bootstrap، به پیکربندی Popper مراجعه کنید .

هنگامی که یک تابع برای ایجاد پیکربندی Popper استفاده می شود، با یک شی که حاوی تنظیمات پیش فرض Popper Bootstrap است فراخوانی می شود. این به شما کمک می کند تا از تنظیمات پیش فرض استفاده کرده و با پیکربندی خود ادغام کنید. تابع باید یک شی پیکربندی برای Popper برگرداند.

ویژگی های داده برای نکات ابزار فردی

همانطور که در بالا توضیح داده شد، می‌توان گزینه‌هایی را برای راهنمایی‌های ابزار جداگانه از طریق استفاده از ویژگی‌های داده مشخص کرد.

استفاده از تابع باpopperConfig

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

مواد و روش ها

روش ها و انتقال های ناهمزمان

همه متدهای API ناهمزمان هستند و یک انتقال را شروع می کنند . آنها به محض شروع انتقال اما قبل از پایان آن به تماس گیرنده باز می گردند . علاوه بر این، فراخوانی متد بر روی یک جزء انتقال نادیده گرفته خواهد شد .

برای اطلاعات بیشتر به مستندات جاوا اسکریپت ما مراجعه کنید .

نشان می دهد

راهنمای ابزار یک عنصر را نشان می دهد. قبل از اینکه نکته ابزار واقعاً نشان داده شود (یعنی قبل از وقوع رویداد) به تماس گیرنده برمی گردد. shown.bs.tooltipاین یک راه‌اندازی «دستی» راهنمای ابزار در نظر گرفته می‌شود. راهنمای ابزار با عناوین با طول صفر هرگز نمایش داده نمی شود.

tooltip.show()

پنهان شدن

راهنمای ابزار یک عنصر را پنهان می کند. قبل از اینکه نکته ابزار واقعاً پنهان شود (یعنی قبل از وقوع رویداد) به تماس گیرنده برمی گردد. hidden.bs.tooltipاین یک راه‌اندازی «دستی» راهنمای ابزار در نظر گرفته می‌شود.

tooltip.hide()

تغییر وضعیت

راهنمای ابزار یک عنصر را تغییر می دهد. قبل از اینکه نکته ابزار واقعاً نشان داده یا پنهان شود (یعنی قبل از اینکه رویداد یا رویداد رخ دهد) به تماس گیرنده برمی گردد. این یک راه‌اندازی «دستی» راهنمای ابزار در نظر گرفته می‌شود.shown.bs.tooltiphidden.bs.tooltip

tooltip.toggle()

در معرض قرار دادن

راهنمای ابزار یک عنصر را پنهان و از بین می برد (داده های ذخیره شده در عنصر DOM را حذف می کند). راهنمایی‌های ابزاری که از تفویض اختیار استفاده می‌کنند (که با استفاده از selectorگزینه ایجاد می‌شوند ) را نمی‌توان به‌صورت جداگانه در عناصر ماشه‌ای از بین برد.

tooltip.dispose()

فعال کردن

به راهنمای ابزار یک عنصر قابلیت نشان دادن را می دهد. راهنمای ابزار به طور پیش فرض فعال است.

tooltip.enable()

غیر فعال کردن

قابلیت نمایش راهنمای یک عنصر را حذف می کند. راهنمای ابزار فقط در صورت فعال شدن مجدد قابل نمایش است.

tooltip.disable()

toggleEnabled

قابلیت نمایش یا پنهان شدن راهنمای ابزار یک عنصر را تغییر می دهد.

tooltip.toggleEnabled()

به روز رسانی

موقعیت راهنمای ابزار یک عنصر را به روز می کند.

tooltip.update()

getInstance

روش ایستا که به شما امکان می دهد نمونه راهنمای مرتبط با یک عنصر DOM را دریافت کنید

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

getOrCreateInstance

روش ایستا که به شما امکان می‌دهد نمونه راهنمای مرتبط با یک عنصر DOM را دریافت کنید، یا در صورتی که اولیه نشده بود، نمونه جدیدی ایجاد کنید.

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

مناسبت ها

نوع رویداد شرح
show.bs.tooltip این رویداد بلافاصله پس از showفراخوانی متد نمونه فعال می شود.
shown.bs.tooltip این رویداد زمانی فعال می شود که راهنمای ابزار برای کاربر قابل مشاهده باشد (منتظر تکمیل انتقال CSS می شود).
hide.bs.tooltip این رویداد بلافاصله پس از hideفراخوانی متد نمونه فعال می شود.
hidden.bs.tooltip این رویداد زمانی فعال می شود که راهنمای ابزار از کاربر مخفی شود (منتظر تکمیل انتقال CSS می شود).
inserted.bs.tooltip این رویداد پس از show.bs.tooltipرویداد زمانی که الگوی راهنمای ابزار به DOM اضافه شده است فعال می شود.
var myTooltipEl = document.getElementById('myTooltip')
var tooltip = new bootstrap.Tooltip(myTooltipEl)

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

tooltip.hide()