Source

نکات ابزار

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

بررسی اجمالی

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

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

prefers-reduced-motionاثر انیمیشن این مؤلفه به پرسش رسانه بستگی دارد . بخش حرکت کاهش یافته اسناد دسترسی ما را ببینید.

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

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

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

$(function () {
  $('[data-toggle="tooltip"]').tooltip()
})

مثال ها

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

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

ماوس را روی دکمه‌های زیر نگه دارید تا چهار جهت راهنمای ابزار را ببینید: بالا، راست، پایین و چپ.

<button type="button" class="btn btn-secondary" data-toggle="tooltip" data-placement="top" title="Tooltip on top">
  Tooltip on top
</button>
<button type="button" class="btn btn-secondary" data-toggle="tooltip" data-placement="right" title="Tooltip on right">
  Tooltip on right
</button>
<button type="button" class="btn btn-secondary" data-toggle="tooltip" data-placement="bottom" title="Tooltip on bottom">
  Tooltip on bottom
</button>
<button type="button" class="btn btn-secondary" data-toggle="tooltip" data-placement="left" title="Tooltip on left">
  Tooltip on left
</button>

و با HTML سفارشی اضافه شده:

<button type="button" class="btn btn-secondary" data-toggle="tooltip" data-html="true" title="<em>Tooltip</em> <u>with</u> <b>HTML</b>">
  Tooltip with HTML
</button>

استفاده

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

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

$('#example').tooltip(options)
سرریز autoوscroll

موقعیت راهنمای ابزار تلاش می‌کند تا زمانی که یک ظرف والد ما را داشته overflow: autoباشد یا overflow: scrollمانند ما باشد، به طور خودکار تغییر کند .table-responsive، اما همچنان موقعیت قرارگیری اصلی را حفظ می‌کند. برای حل، boundaryگزینه را روی هر چیزی غیر از مقدار پیش فرض تنظیم کنید 'scrollParent'، مانند 'window':

$('#example').tooltip({ boundary: 'window' })

نشانه گذاری

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

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

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

<!-- HTML to write -->
<a href="#" data-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="arrow"></div>
  <div class="tooltip-inner">
    Some tooltip text!
  </div>
</div>

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

عناصر دارای disabledویژگی تعاملی نیستند، به این معنی که کاربران نمی‌توانند برای راه‌اندازی یک راهنمای ابزار (یا پاپاور) روی آن‌ها تمرکز کنند، ماوس را نگه دارند یا کلیک کنند. به عنوان یک راه حل، می‌خواهید که راهنمای ابزار را از یک لفاف <div>یا <span>با استفاده از صفحه کلید قابل تمرکز ایده‌آل فعال کنید و عنصر غیرفعال را tabindex="0"لغو کنید .pointer-events

<span class="d-inline-block" tabindex="0" data-toggle="tooltip" title="Disabled tooltip">
  <button class="btn btn-primary" style="pointer-events: none;" type="button" disabled>Disabled button</button>
</span>

گزینه ها

گزینه ها را می توان از طریق ویژگی های داده یا جاوا اسکریپت منتقل کرد. data-برای ویژگی های داده، نام گزینه را به مانند در ضمیمه کنید data-animation="".

توجه داشته باشید که به دلایل امنیتی نمی توان گزینه sanitizeهای sanitizeFnو whiteListرا با استفاده از ویژگی های داده ارائه کرد.

نام تایپ کنید پیش فرض شرح
انیمیشن بولی درست است، واقعی یک انتقال محو CSS را به راهنمای ابزار اعمال کنید
ظرف رشته | عنصر | نادرست نادرست

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

تاخیر انداختن شماره | هدف - شی 0

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

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

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

html بولی نادرست

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

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

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

تعیین سطح رشته | عملکرد 'بالا'

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

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

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

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

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

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

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

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

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

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

ماشه رشته "تمرکز شناور"

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

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

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

انحراف شماره | رشته | عملکرد 0

افست راهنمای ابزار نسبت به هدفش.

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

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

جایگزینی رشته | آرایه تلنگر اجازه دهید مشخص کنید که پوپر از کدام موقعیت در بازگشت استفاده می کند. برای اطلاعات بیشتر به اسناد رفتاری Popper.js مراجعه کنید
مرز رشته | عنصر 'scrollParent' مرز محدودیت سرریز از راهنمای ابزار. مقادیر 'viewport', 'window', 'scrollParent'یا مرجع HTMLElement (فقط جاوا اسکریپت) را می پذیرد. برای اطلاعات بیشتر به اسناد preventOverflow Popper.js مراجعه کنید .
ضدعفونی کردن بولی درست است، واقعی پاکسازی را فعال یا غیرفعال کنید. در صورت فعال شدن 'template'و 'title'گزینه ها ضد عفونی می شوند.
لیست سفید هدف - شی مقدار پیش فرض شیئی که حاوی ویژگی ها و برچسب های مجاز است
sanitizeFn null | عملکرد خالی در اینجا می توانید عملکرد ضدعفونی کننده خود را ارائه دهید. اگر ترجیح می دهید از یک کتابخانه اختصاصی برای انجام پاکسازی استفاده کنید، می تواند مفید باشد.
popperConfig null | هدف - شی خالی برای تغییر پیکربندی پیش‌فرض Popper.js Bootstrap، به پیکربندی Popper.js مراجعه کنید.

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

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

مواد و روش ها

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

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

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

$().tooltip(options)

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

.tooltip('show')

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

$('#element').tooltip('show')

.tooltip('hide')

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

$('#element').tooltip('hide')

.tooltip('toggle')

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

$('#element').tooltip('toggle')

.tooltip('dispose')

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

$('#element').tooltip('dispose')

.tooltip('enable')

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

$('#element').tooltip('enable')

.tooltip('disable')

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

$('#element').tooltip('disable')

.tooltip('toggleEnabled')

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

$('#element').tooltip('toggleEnabled')

.tooltip('update')

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

$('#element').tooltip('update')

مناسبت ها

نوع رویداد شرح
show.bs.tooltip این رویداد بلافاصله پس از showفراخوانی متد نمونه فعال می شود.
نشان داده شده.bs.tip tool این رویداد زمانی فعال می شود که راهنمای ابزار برای کاربر قابل مشاهده باشد (منتظر تکمیل انتقال CSS می شود).
hide.bs.tooltip این رویداد بلافاصله پس از hideفراخوانی متد نمونه فعال می شود.
hidden.bs.tooltip این رویداد زمانی فعال می شود که راهنمای ابزار از کاربر مخفی شود (منتظر تکمیل انتقال CSS می شود).
درج شده.bs.tooltip این رویداد پس از show.bs.tooltipرویداد زمانی که الگوی راهنمای ابزار به DOM اضافه شده است فعال می شود.
$('#myTooltip').on('hidden.bs.tooltip', function () {
  // do something...
})