نکات ابزار
مستندات و مثالهایی برای افزودن نکات سفارشی 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 سایه فعال کرد.
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 |
راهنمای ابزار را به یک عنصر خاص اضافه می کند. مثال: |
delay |
شماره | هدف - شی | 0 |
تأخیر در نمایش و پنهان کردن راهنمای ابزار (ms) - برای نوع ماشه دستی اعمال نمی شود اگر شماره ای ارائه شود، تاخیر برای هر دو پنهان/نمایش اعمال می شود ساختار شیء عبارت است از: |
html |
بولی | false |
اجازه دادن به HTML در راهنمای ابزار. اگر درست باشد، تگهای HTML در راهنمای ابزار در راهنمای ابزار اگر نگران حملات XSS هستید از متن استفاده کنید. |
placement |
رشته | عملکرد | 'top' |
نحوه قرار دادن راهنمای ابزار - خودکار | بالا | پایین | چپ | درست. هنگامی که یک تابع برای تعیین مکان استفاده می شود، با گره DOM به عنوان اولین آرگومان و عنصر راه اندازی گره DOM به عنوان دومین آرگومان فراخوانی می شود. متن |
selector |
رشته | نادرست | false |
اگر انتخابگر ارائه شود، اشیاء راهنمای ابزار به اهداف مشخص شده واگذار می شوند. در عمل، از این روش برای اعمال راهنمایی های ابزار برای عناصر DOM به صورت پویا ( jQuery.on پشتیبانی) استفاده می شود. این و یک مثال آموزنده را ببینید . |
template |
رشته | '<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>' |
پایه HTML برای استفاده در هنگام ایجاد راهنمای ابزار. راهنمای ابزار به
بیرونی ترین عنصر wrapper باید |
title |
رشته | عنصر | عملکرد | '' |
اگر تابعی داده شود، با |
trigger |
رشته | 'hover focus' |
راهنمای ابزار چگونه راه اندازی می شود - کلیک کنید | شناور | تمرکز | کتابچه راهنمای. شما ممکن است چندین محرک عبور دهید. آنها را با فاصله جدا کنید.
|
fallbackPlacements |
آرایه | ['top', 'right', 'bottom', 'left'] |
با ارائه لیستی از قرارگیری ها در آرایه (به ترتیب اولویت) مکان های جایگزین را تعریف کنید. برای اطلاعات بیشتر به اسناد رفتاری پوپر مراجعه کنید |
boundary |
رشته | عنصر | 'clippingParents' |
مرز محدودیت سرریز از راهنمای ابزار (فقط برای اصلاح کننده Popper's preventOverflow اعمال می شود). به طور پیشفرض 'clippingParents' میتواند یک مرجع HTMLElement را بپذیرد (فقط از طریق جاوا اسکریپت). برای اطلاعات بیشتر به Popper's detectOverflow docs مراجعه کنید. |
customClass |
رشته | عملکرد | '' |
وقتی راهنمای ابزار نشان داده شد، کلاسها را به آن اضافه کنید. توجه داشته باشید که این کلاس ها علاوه بر کلاس های مشخص شده در قالب اضافه خواهند شد. برای اضافه کردن چند کلاس، آنها را با فاصله از هم جدا کنید همچنین میتوانید تابعی را ارسال کنید که باید یک رشته حاوی نامهای کلاس اضافی را برگرداند. |
sanitize |
بولی | true |
پاکسازی را فعال یا غیرفعال کنید. در صورت فعال شدن 'template' و 'title' گزینه ها ضد عفونی می شوند. بخش ضدعفونی کننده را در مستندات جاوا اسکریپت ما ببینید. |
allowList |
هدف - شی | مقدار پیش فرض | شیئی که حاوی ویژگی ها و برچسب های مجاز است |
sanitizeFn |
null | عملکرد | null |
در اینجا می توانید عملکرد ضدعفونی کننده خود را ارائه دهید. اگر ترجیح می دهید از یک کتابخانه اختصاصی برای انجام پاکسازی استفاده کنید، می تواند مفید باشد. |
offset |
آرایه | رشته | عملکرد | [0, 0] |
افست راهنمای ابزار نسبت به هدفش. شما می توانید یک رشته را در ویژگی های داده با مقادیر جدا شده با ویرگول مانند: هنگامی که یک تابع برای تعیین offset استفاده می شود، با یک شی حاوی popper placement، مرجع، و popper rects به عنوان اولین آرگومان فراخوانی می شود. گره DOM عنصر محرک به عنوان آرگومان دوم ارسال می شود. تابع باید یک آرایه با دو عدد برگرداند: . برای اطلاعات بیشتر به اسناد افست پوپر مراجعه کنید . |
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.tooltip
hidden.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()