نکات ابزار
مستندات و مثالهایی برای افزودن نکات سفارشی Bootstrap با CSS و جاوا اسکریپت با استفاده از CSS3 برای انیمیشنها و دادهها-bs-ویژگیها برای ذخیرهسازی عنوان محلی.
بررسی اجمالی
نکاتی که باید هنگام استفاده از افزونه tooltip بدانید:
- راهنمای ابزار برای موقعیت یابی به کتابخانه شخص ثالث Popper متکی است. شما باید popper.min.js را قبل از آن اضافه
bootstrap.js
کنید، یا از یکیbootstrap.bundle.min.js
که حاوی Popper باشد استفاده کنید. - راهنمای ابزار به دلایل عملکردی انتخاب شده است، بنابراین باید خودتان آنها را مقداردهی اولیه کنید .
- راهنمای ابزار با عناوین با طول صفر هرگز نمایش داده نمی شود.
container: 'body'
برای جلوگیری از بروز مشکلات در مؤلفههای پیچیدهتر (مانند گروههای ورودی، گروههای دکمهها و غیره) آن را مشخص کنید .- راهاندازی نکات ابزار در عناصر پنهان کار نخواهد کرد.
- نکات ابزار برای
.disabled
یاdisabled
عناصر باید بر روی یک عنصر پوششی فعال شوند. - هنگامی که از لینک هایی که چندین خط را تشکیل می دهند، راهنمایی های ابزار در مرکز قرار می گیرند. برای جلوگیری از این رفتار از
white-space: nowrap;
روی s خود استفاده کنید.<a>
- نکات ابزار باید قبل از حذف عناصر مربوطه از DOM پنهان شوند.
- راهنمای ابزار را می توان به لطف عنصری در داخل یک DOM سایه فعال کرد.
همه اینها را فهمیدید؟ عالی است، بیایید ببینیم آنها با چند مثال چگونه کار می کنند.
prefers-reduced-motion
اثر انیمیشن این مؤلفه به پرسش رسانه
بستگی دارد
. بخش
حرکت کاهش یافته اسناد دسترسی ما را ببینید.
مثال ها
راهنمای ابزار را فعال کنید
همانطور که در بالا ذکر شد، شما باید راهنمای ابزار را قبل از استفاده از آنها مقداردهی اولیه کنید. یک راه برای مقداردهی اولیه تمام نکات ابزار در یک صفحه این است که آنها را بر اساس ویژگی آنها انتخاب کنید data-bs-toggle
، مانند:
const tooltipTriggerList = document.querySelectorAll('[data-bs-toggle="tooltip"]')
const tooltipList = [...tooltipTriggerList].map(tooltipTriggerEl => new bootstrap.Tooltip(tooltipTriggerEl))
نکات ابزار در پیوندها
برای دیدن نکات ابزار، نشانگر را روی پیوندهای زیر نگه دارید:
متن جای جای برای نشان دادن برخی پیوندهای درون خطی با راهنمایی ابزار. این اکنون فقط پرکننده است، بدون قاتل. محتوایی که در اینجا فقط برای تقلید از حضور متن واقعی قرار داده شده است. و همه اینها فقط برای این است که به شما ایده بدهد که راهنماییهای ابزار هنگام استفاده در موقعیتهای واقعی چگونه به نظر میرسند. بنابراین امیدواریم که اکنون متوجه شده باشید که چگونه این نکات ابزار روی پیوندها ، زمانی که از آنها در سایت یا پروژه خود استفاده می کنید، در عمل می توانند کار کنند.
<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
در HTML خود استفاده کنید. هنگامی
title
که استفاده می شود، Popper آن را به طور خودکار با
data-bs-title
زمانی که عنصر رندر می شود جایگزین می کند.
نکات ابزار سفارشی
اضافه شده در نسخه 5.2.0شما می توانید ظاهر نکات ابزار را با استفاده از متغیرهای CSS سفارشی کنید . ما یک کلاس سفارشی با آن تنظیم data-bs-custom-class="custom-tooltip"
می کنیم تا ظاهر سفارشی خود را در بر بگیرد و از آن برای نادیده گرفتن یک متغیر CSS محلی استفاده کنیم.
.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>
جهت ها
ماوس را روی دکمههای زیر نگه دارید تا چهار جهت راهنمای ابزار را ببینید: بالا، راست، پایین و چپ. هنگام استفاده از Bootstrap در RTL، دستورالعمل ها منعکس می شوند.
<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>
و با HTML سفارشی اضافه شده:
<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>
با SVG:
CSS
متغیرها
اضافه شده در نسخه 5.2.0به عنوان بخشی از رویکرد متغیرهای CSS در حال تکامل Bootstrap، راهنمای ابزار اکنون از متغیرهای CSS محلی .tooltip
برای سفارشیسازی در زمان واقعی استفاده میکند. مقادیر برای متغیرهای CSS از طریق Sass تنظیم میشوند، بنابراین سفارشیسازی Sass نیز همچنان پشتیبانی میشود.
--#{$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};
متغیرهای 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
استفاده
افزونه tooltip محتوا و نشانهگذاری را بر اساس تقاضا تولید میکند و بهطور پیشفرض راهنماییهای ابزار را بعد از عنصر ماشه قرار میدهد.
راهنمای ابزار را از طریق جاوا اسکریپت فعال کنید:
const exampleEl = document.getElementById('example')
const tooltip = new bootstrap.Tooltip(exampleEl, options)
سرریز auto
وscroll
موقعیت راهنمای ابزار تلاش میکند تا زمانی که یک ظرف والد ما را داشته overflow: auto
باشد یا overflow: scroll
مانند ما باشد، به طور خودکار تغییر کند .table-responsive
، اما همچنان موقعیت قرارگیری اصلی را حفظ میکند. برای حل این مشکل، boundary
گزینه (برای تغییر دهنده با استفاده از popperConfig
گزینه) را روی هر HTMLElement تنظیم کنید تا مقدار پیش فرض را لغو کند 'clippingParents'
، مانند document.body
:
const tooltip = new bootstrap.Tooltip('#example', {
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" 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>
عناصر غیر فعال
عناصر دارای disabled
ویژگی تعاملی نیستند، به این معنی که کاربران نمیتوانند برای راهاندازی یک راهنمای ابزار (یا پاپاور) روی آنها تمرکز کنند، ماوس را نگه دارند یا کلیک کنند. بهعنوان راهحل، میخواهید راهنمای ابزار را از یک لفاف <div>
یا <span>
با استفاده از کیبورد قابل تمرکز ایدهآل فعال 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>
گزینه ها
از آنجایی که گزینهها میتوانند از طریق ویژگیهای داده یا جاوا اسکریپت ارسال شوند، میتوانید یک نام گزینه را data-bs-
مانند در ضمیمه کنید data-bs-animation="{value}"
. هنگام عبور گزینه ها از طریق ویژگی های داده، حتماً نوع حروف نام گزینه را از “ camelCase ” به “ kebab-case ” تغییر دهید. به عنوان مثال، data-bs-custom-class="beautifier"
به جای استفاده از data-bs-customClass="beautifier"
.
از Bootstrap 5.2.0، همه مؤلفهها از یک ویژگی داده رزرو شده تجربیdata-bs-config
پشتیبانی میکنند که میتواند پیکربندی مؤلفه ساده را به عنوان یک رشته JSON در خود جای دهد. هنگامی که یک عنصر دارای data-bs-config='{"delay":0, "title":123}'
و data-bs-title="456"
ویژگی باشد، مقدار نهایی title
خواهد بود 456
و ویژگی های داده جداگانه مقادیر داده شده در را لغو می کنند data-bs-config
. علاوه بر این، ویژگی های داده موجود می توانند مقادیر JSON مانند data-bs-delay='{"show":0,"hide":150}'
.
sanitize
,
sanitizeFn
و
allowList
نمی توانند با استفاده از ویژگی های داده ارائه شوند.
نام | تایپ کنید | پیش فرض | شرح |
---|---|---|---|
allowList |
هدف - شی | مقدار پیش فرض | شیئی که حاوی ویژگی ها و برچسب های مجاز است. |
animation |
بولی | true |
یک انتقال محو CSS را به راهنمای ابزار اعمال کنید. |
boundary |
رشته، عنصر | 'clippingParents' |
مرز محدودیت سرریز از راهنمای ابزار (فقط برای اصلاح کننده Popper's preventOverflow اعمال می شود). به طور پیشفرض، 'clippingParents' یک مرجع HTMLElement را میپذیرد (فقط از طریق جاوا اسکریپت). برای اطلاعات بیشتر به Popper's detectOverflow docs مراجعه کنید. |
container |
رشته، عنصر، نادرست | false |
راهنمای ابزار را به یک عنصر خاص اضافه می کند. مثال: container: 'body' . این گزینه به ویژه از این جهت مفید است که به شما امکان میدهد راهنمای ابزار را در جریان سند در نزدیکی عنصر راهانداز قرار دهید - که مانع از شناور شدن راهنمای ابزار از عنصر راهانداز در طول تغییر اندازه پنجره میشود. |
customClass |
رشته، تابع | '' |
وقتی راهنمای ابزار نشان داده شد، کلاسها را به آن اضافه کنید. توجه داشته باشید که این کلاس ها علاوه بر کلاس های مشخص شده در قالب اضافه خواهند شد. برای اضافه کردن چند کلاس، آنها را با فاصله از هم جدا کنید 'class-1 class-2' : همچنین میتوانید تابعی را ارسال کنید که باید یک رشته حاوی نامهای کلاس اضافی را برگرداند. |
delay |
شماره، شی | 0 |
تأخیر در نمایش و پنهان کردن نکته ابزار (میلیثانیه) - برای نوع ماشه دستی اعمال نمیشود. اگر شماره ای ارائه شود، تاخیر برای هر دو پنهان/نمایش اعمال می شود. ساختار شیء عبارت است از: delay: { "show": 500, "hide": 100 } . |
fallbackPlacements |
آرایه | ['top', 'right', 'bottom', 'left'] |
با ارائه لیستی از قرارگیری ها در آرایه (به ترتیب اولویت) مکان های جایگزین را تعریف کنید. برای اطلاعات بیشتر به اسناد رفتاری پوپر مراجعه کنید . |
html |
بولی | false |
اجازه دادن به HTML در راهنمای ابزار. اگر درست باشد، تگهای HTML در راهنمای ابزار در راهنمای ابزار title ارائه میشوند. اگر نادرست باشد، innerText از ویژگی برای درج محتوا در DOM استفاده می شود. اگر نگران حملات XSS هستید از متن استفاده کنید. |
offset |
آرایه، رشته، تابع | [0, 0] |
افست راهنمای ابزار نسبت به هدفش. شما می توانید یک رشته را در ویژگی های داده با مقادیر جدا شده با کاما مانند: ارسال data-bs-offset="10,20" کنید. هنگامی که یک تابع برای تعیین offset استفاده می شود، با یک شی حاوی popper placement، مرجع، و popper rects به عنوان اولین آرگومان فراخوانی می شود. گره DOM عنصر محرک به عنوان آرگومان دوم ارسال می شود. تابع باید یک آرایه با دو عدد برگرداند: لغزش ، فاصله . برای اطلاعات بیشتر به اسناد افست پوپر مراجعه کنید . |
placement |
رشته، تابع | 'top' |
نحوه قرار دادن راهنمای ابزار: خودکار، بالا، پایین، چپ، راست. وقتی auto مشخص شد، به صورت پویا راهنمای ابزار را تغییر جهت می دهد. هنگامی که یک تابع برای تعیین مکان استفاده می شود، با گره DOM به عنوان اولین آرگومان و عنصر راه اندازی گره DOM به عنوان دومین آرگومان فراخوانی می شود. متن this روی نمونه راهنمای ابزار تنظیم شده است. |
popperConfig |
تهی، شیء، تابع | null |
برای تغییر تنظیمات Popper پیشفرض Bootstrap، به پیکربندی Popper مراجعه کنید . هنگامی که یک تابع برای ایجاد پیکربندی Popper استفاده می شود، با یک شی که حاوی تنظیمات پیش فرض Popper Bootstrap است فراخوانی می شود. این به شما کمک می کند تا از تنظیمات پیش فرض استفاده کرده و با پیکربندی خود ادغام کنید. تابع باید یک شی پیکربندی برای Popper برگرداند. |
sanitize |
بولی | true |
پاکسازی را فعال یا غیرفعال کنید. در صورت فعال شدن 'template' ، گزینه 'content' ها 'title' ضد عفونی خواهند شد. |
sanitizeFn |
تهی، تابع | null |
در اینجا می توانید عملکرد ضدعفونی کننده خود را ارائه دهید. اگر ترجیح می دهید از یک کتابخانه اختصاصی برای انجام پاکسازی استفاده کنید، می تواند مفید باشد. |
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 مجموعه مرجع خود به عنصری که popover به آن متصل است فراخوانی می شود. |
trigger |
رشته | 'hover focus' |
نحوه راهاندازی راهنمای ابزار: کلیک، شناور، فوکوس، دستی. شما ممکن است چندین محرک عبور دهید. آنها را با فاصله جدا کنید. 'manual' نشان می دهد که راهنمای ابزار به صورت برنامه نویسی از طریق متدهای .tooltip('show') و فعال .tooltip('hide') می شود. .tooltip('toggle') این مقدار را نمی توان با هیچ محرک دیگری ترکیب کرد. 'hover' به خودی خود منجر به راهنماییهای ابزاری میشود که نمیتوانند از طریق صفحهکلید راهاندازی شوند، و تنها در صورتی باید استفاده شوند که روشهای جایگزین برای انتقال همان اطلاعات برای کاربران صفحهکلید وجود داشته باشد. |
ویژگی های داده برای نکات ابزار فردی
همانطور که در بالا توضیح داده شد، میتوان گزینههایی را برای راهنماییهای ابزار جداگانه از طریق استفاده از ویژگیهای داده مشخص کرد.
استفاده از تابع باpopperConfig
const tooltip = new bootstrap.Tooltip(element, {
popperConfig(defaultBsPopperConfig) {
// const newPopperConfig = {...}
// use defaultBsPopperConfig if needed...
// return newPopperConfig
}
})
مواد و روش ها
روش ها و انتقال های ناهمزمان
همه متدهای API ناهمزمان هستند و یک انتقال را شروع می کنند . آنها به محض شروع انتقال اما قبل از پایان آن به تماس گیرنده باز می گردند . علاوه بر این، فراخوانی متد بر روی یک جزء انتقال نادیده گرفته خواهد شد .
روش | شرح |
---|---|
disable |
قابلیت نمایش راهنمای یک عنصر را حذف می کند. راهنمای ابزار فقط در صورت فعال شدن مجدد قابل نمایش است. |
dispose |
راهنمای ابزار یک عنصر را پنهان و از بین می برد (داده های ذخیره شده در عنصر DOM را حذف می کند). راهنماییهای ابزاری که از تفویض اختیار استفاده میکنند (که با استفاده از selector گزینه ایجاد میشوند ) را نمیتوان بهصورت جداگانه در عناصر ماشهای از بین برد. |
enable |
به راهنمای ابزار یک عنصر قابلیت نشان دادن را می دهد. راهنمای ابزار به طور پیش فرض فعال است. |
getInstance |
روش ایستا که به شما امکان میدهد نمونه راهنمای مرتبط با یک عنصر DOM را دریافت کنید، یا در صورتی که اولیه نشده بود، نمونه جدیدی ایجاد کنید. |
getOrCreateInstance |
روش ایستا که به شما امکان میدهد نمونه راهنمای مرتبط با یک عنصر DOM را دریافت کنید، یا در صورتی که اولیه نشده بود، نمونه جدیدی ایجاد کنید. |
hide |
راهنمای ابزار یک عنصر را پنهان می کند. قبل از اینکه نکته ابزار واقعاً پنهان شود (یعنی قبل از وقوع رویداد) به تماس گیرنده برمی گردد. hidden.bs.tooltip این یک راهاندازی «دستی» راهنمای ابزار در نظر گرفته میشود. |
setContent |
راهی برای تغییر محتوای راهنمای ابزار پس از شروع اولیه ارائه می دهد. |
show |
راهنمای ابزار یک عنصر را نشان می دهد. قبل از اینکه نکته ابزار واقعاً نشان داده شود (یعنی قبل از وقوع رویداد) به تماس گیرنده برمی گردد. shown.bs.tooltip این یک راهاندازی «دستی» راهنمای ابزار در نظر گرفته میشود. راهنمای ابزار با عناوین با طول صفر هرگز نمایش داده نمی شود. |
toggle |
راهنمای ابزار یک عنصر را تغییر می دهد. قبل از اینکه نکته ابزار واقعاً نشان داده یا پنهان شود (یعنی قبل از اینکه رویداد یا رویداد رخ دهد) به تماس گیرنده برمی گردد. این یک راهاندازی «دستی» راهنمای ابزار در نظر گرفته میشود.shown.bs.tooltip hidden.bs.tooltip |
toggleEnabled |
قابلیت نمایش یا پنهان شدن راهنمای ابزار یک عنصر را تغییر می دهد. |
update |
موقعیت راهنمای ابزار یک عنصر را به روز می کند. |
const tooltip = bootstrap.Tooltip.getInstance('#example') // Returns a Bootstrap tooltip instance
// setContent example
tooltip.setContent({ '.tooltip-inner': 'another title' })
setContent
روش یک
object
آرگومان را می پذیرد، که در آن هر کلید ویژگی یک
string
انتخابگر معتبر در قالب popover است، و هر خاصیت-مقدار مرتبط می تواند
string
|
element
|
function
|
null
مناسبت ها
رویداد | شرح |
---|---|
hide.bs.tooltip |
این رویداد بلافاصله پس از hide فراخوانی متد نمونه فعال می شود. |
hidden.bs.tooltip |
این رویداد زمانی فعال می شود که پاپ اور از کاربر مخفی شود (منتظر تکمیل انتقال CSS می شود). |
inserted.bs.tooltip |
این رویداد پس از show.bs.tooltip رویداد زمانی که الگوی راهنمای ابزار به DOM اضافه شده است فعال می شود. |
show.bs.tooltip |
این رویداد بلافاصله پس از show فراخوانی متد نمونه فعال می شود. |
shown.bs.tooltip |
این رویداد زمانی فعال می شود که پاپاور برای کاربر قابل مشاهده باشد (منتظر تکمیل انتقال CSS می شود). |
const myTooltipEl = document.getElementById('myTooltip')
const tooltip = bootstrap.Tooltip.getOrCreateInstance(myTooltipEl)
myTooltipEl.addEventListener('hidden.bs.tooltip', () => {
// do something...
})
tooltip.hide()