Поповерлер
Құжаттар мен сайтыңыздағы кез келген элементке iOS жүйесінде табылғандар сияқты Bootstrap қалқымалы файлдарын қосуға арналған мысалдар.
Шолу
Popover плагинін пайдалану кезінде білу керек нәрселер:
- Поповерлер орналасу үшін үшінші тарап кітапханасының Попперіне сүйенеді . Сіз popper.min.js файлын bootstrap.js алдында қосуыңыз керек немесе popovers жұмыс істеуі үшін Popper бар
bootstrap.bundle.min.js
/ пайдалануыңыз керек!bootstrap.bundle.js
- Popovers тәуелділік ретінде құралдар тақтасының плагинін қажет етеді.
- Егер сіз JavaScript-ті дереккөзден құрастырсаңыз, ол
util.js
. - Popovers өнімділік себептері бойынша қосылады, сондықтан оларды өзіңіз баптандыруыңыз керек .
- Нөлдік ұзындық
title
пенcontent
мәндер ешқашан қалқымалы терезені көрсетпейді. container: 'body'
Күрделі құрамдас бөліктерде (мысалы, енгізу топтары, түймелер топтары, т.б.) ақауларды көрсетпеу үшін көрсетіңіз .- Жасырын элементтерде қалқандарды іске қосу жұмыс істемейді.
.disabled
Қаптама элементінде немесеdisabled
элементтер үшін поповерлер іске қосылуы керек.- Бірнеше жолдар бойымен оралатын якорьлерден іске қосылғанда, қалқымалы белгілер якорлардың жалпы ені арасында ортаға орналасады. Бұл әрекетті болдырмау үшін s
.text-nowrap
on yours пайдаланыңыз .<a>
- Поповерлер олардың сәйкес элементтері DOM ішінен жойылмай тұрып жасырылуы керек.
- Popovers көлеңкелі DOM ішіндегі элементтің арқасында іске қосылуы мүмкін.
prefers-reduced-motion
медиа сұрауына байланысты. Арнайы мүмкіндіктер құжаттамасының қысқартылған қозғалыс бөлімін қараңыз
.
Кейбір мысалдармен поповерлер қалай жұмыс істейтінін көру үшін оқуды жалғастырыңыз.
Мысал: барлық жерде қалқымалы терезелерді қосыңыз
Беттегі барлық қалқымалы терезелерді инициализациялаудың бір жолы оларды data-toggle
атрибуты бойынша таңдау болады:
$(function () {
$('[data-toggle="popover"]').popover()
})
Мысалы: container
опцияны пайдалану
Негізгі элементте қалқымалы файлға кедергі келтіретін кейбір мәнерлер болған кезде, container
оның орнына қалқымалы файлдың HTML-сі сол элемент ішінде пайда болатындай реттелетін параметрді көрсеткіңіз келеді.
$(function () {
$('.example-popover').popover({
container: 'body'
})
})
Мысал
<button type="button" class="btn btn-lg btn-danger" data-toggle="popover" title="Popover title" data-content="And here's some amazing content. It's very engaging. Right?">Click to toggle popover</button>
Төрт бағыт
Төрт опция қолжетімді: жоғарғы, оң жақ, төменгі және солға тураланған.
<button type="button" class="btn btn-secondary" data-container="body" data-toggle="popover" data-placement="top" data-content="Top popover">
Popover on top
</button>
<button type="button" class="btn btn-secondary" data-container="body" data-toggle="popover" data-placement="right" data-content="Right popover">
Popover on right
</button>
<button type="button" class="btn btn-secondary" data-container="body" data-toggle="popover" data-placement="bottom" data-content="Bottom popover">
Popover on bottom
</button>
<button type="button" class="btn btn-secondary" data-container="body" data-toggle="popover" data-placement="left" data-content="Left popover">
Popover on left
</button>
Келесі шертуде жабу
focus
Триггерді ауыстырып-қосқыш элементтен басқа элементті пайдаланушы келесі рет басқанда қалқымалы терезелерді алып тастау үшін пайдаланыңыз .
Келесі нұқу кезінде өшіру үшін арнайы белгілеу қажет
Кросс-шолғыш және кросс-платформа әрекеті үшін тегті емес, тегті пайдалану керек <a>
, сонымен қатар <button>
төлсипатты қамту керек tabindex
.
<a tabindex="0" class="btn btn-lg btn-danger" role="button" data-toggle="popover" data-trigger="focus" title="Dismissible popover" data-content="And here's some amazing content. It's very engaging. Right?">Dismissible popover</a>
$('.popover-dismiss').popover({
trigger: 'focus'
})
Өшірілген элементтер
Төлсипатқа ие элементтер disabled
интерактивті емес, яғни пайдаланушылар қалқымалы терезені (немесе құралдар кеңесін) іске қосу үшін меңзерді апара алмайды немесе баса алмайды. Шешім ретінде сіз қаптамадан қалқымалы әрекетті іске қосқыңыз келеді <div>
немесе өшірілген элементтегі элементті <span>
қайта анықтағыңыз келеді .pointer-events
Өшірілген қалқымалы триггерлер үшін қалқымалы триггерлер пайдаланушыларыңызға дереу көрнекі кері байланыс ретінде пайда болуын қалауыңыз мүмкін, себебі олар өшірілген элементті басудыdata-trigger="hover"
күтпеуі мүмкін .
<span class="d-inline-block" data-toggle="popover" data-content="Disabled popover">
<button class="btn btn-primary" style="pointer-events: none;" type="button" disabled>Disabled button</button>
</span>
Қолданылуы
JavaScript арқылы popovers қосыңыз:
$('#example').popover(options)
GPU жеделдету
Windows 10 құрылғыларында GPU жеделдетуіне және өзгертілген жүйе DPI себебіне байланысты popovers кейде бұлыңғыр болып көрінеді. v4 нұсқасында мұны шешу жолы қалқымалы файлдарда қажет болған жағдайда GPU жеделдетуін өшіру болып табылады.
Ұсынылған түзету:
Popper.Defaults.modifiers.computeStyle.gpuAcceleration = !(window.devicePixelRatio < 1.5 && /Win/.test(navigator.platform))
Пернетақта мен көмекші технология пайдаланушылары үшін поповерлер жұмыс істеуге мүмкіндік береді
Пернетақта пайдаланушыларына қалқымалы терезелерді белсендіруге рұқсат беру үшін оларды тек дәстүрлі түрде пернетақтаға бағытталған және интерактивті HTML элементтеріне қосу керек (сілтемелер немесе пішін басқару элементтері сияқты). Ерікті HTML элементтерін (мысалы, <span>
s) tabindex="0"
атрибут қосу арқылы фокустайтын етіп жасауға болады, бірақ бұл пернетақта пайдаланушылары үшін интерактивті емес элементтерге ықтимал тітіркендіргіш және шатастыратын қойындыларды қосады және қазіргі уақытта көмекші технологиялардың көпшілігі бұл жағдайда қалқымалы мазмұнды жарияламайды. . hover
Оған қоса, тек қалқымалы файлдар үшін триггер ретінде ғана сенбеңіз, себебі бұл оларды пернетақта пайдаланушылары үшін іске қосу мүмкін емес етеді.
Опциясы бар қалқымалы терезелерге бай, құрылымды HTML кірістіре алатын html
болсаңыз да, мазмұнның шамадан тыс мөлшерін қосудан аулақ болуды ұсынамыз. Қалқымалы құрылғылардың қазіргі уақытта жұмыс істеу тәсілі - көрсетілгеннен кейін олардың мазмұны төлсипатпен триггер элементімен aria-describedby
байланыстырылады. Нәтижесінде, popover мазмұнының толық бөлігі көмекші технология пайдаланушыларына бір ұзақ, үздіксіз ағын ретінде жарияланады.
Сонымен қатар, қалқымалы құралға интерактивті басқару элементтерін (пішін элементтері немесе сілтемелер сияқты) қосу мүмкін болса да (осы элементтерді whiteList
немесе рұқсат етілген төлсипаттар мен тегтерге қосу арқылы), қазіргі уақытта қалқымалы құрал пернетақта фокус тәртібін басқармайтынын ескеріңіз. Пернетақта пайдаланушысы қалқымалы терезені ашқанда, фокус іске қосу элементінде қалады және қалқымалы құрылғы әдетте құжат құрылымындағы триггерді бірден орындамайтындықтан, алға жылжу/басу кепілдігі жоқ.TABпернетақта пайдаланушысын қалқымалы терезеге жылжытады. Қысқасы, қалқымалы терезеге жай ғана интерактивті басқару элементтерін қосу бұл басқару элементтерін пернетақта пайдаланушылары мен көмекші технологияларды пайдаланушылар үшін қол жетімсіз/пайдасыз етеді немесе кем дегенде логикалық емес жалпы фокус тәртібін жасайды. Мұндай жағдайларда оның орнына модальды диалогты пайдалануды қарастырыңыз.
Опциялар
Опцияларды деректер атрибуттары немесе JavaScript арқылы жіберуге болады. Деректер атрибуттары үшін параметр атауын ішінде data-
сияқты қосыңыз data-animation=""
.
sanitize
,
sanitizeFn
және
whiteList
опциялары деректер атрибуттары арқылы қамтамасыз етілмейтінін ескеріңіз.
Аты | Түр | Әдепкі | Сипаттама |
---|---|---|---|
анимация | логикалық | рас | Қалқымалы файлға CSS өшіру көшуін қолданыңыз |
контейнер | жол | элемент | жалған | жалған | Қалқымалы элементті белгілі бір элементке қосады. Мысалы: |
мазмұны | жол | элемент | функциясы | '' |
Егер функция берілсе, ол |
кешіктіру | саны | объект | 0 | Қалқымалы файлды көрсету және жасыру кідірісі (мс) - қолмен іске қосу түріне қолданылмайды Егер нөмір берілсе, кідіріс жасыру/көрсету үшін де қолданылады Объектінің құрылымы – бұл: |
html | логикалық | жалған | Қалқымалы файлға HTML енгізіңіз. Егер жалған болса, jQuery text әдісі мазмұнды DOM ішіне енгізу үшін пайдаланылады. XSS шабуылдары туралы алаңдасаңыз, мәтінді пайдаланыңыз. |
орналастыру | жол | функциясы | 'дұрыс' | Қалқымалы құрылғыны қалай орналастыруға болады - авто | жоғарғы | төменгі | сол жақ | дұрыс. Орналастыруды анықтау үшін функция пайдаланылған кезде, ол бірінші аргумент ретінде popover DOM түйінімен, ал екінші рет іске қосу элементі DOM түйінімен шақырылады. Мәтінмән |
селектор | жол | жалған | жалған | Егер селектор берілсе, қалқымалы нысандар көрсетілген мақсаттарға беріледі. Іс жүзінде бұл динамикалық HTML мазмұнына қалқымалы файлдарды қосу үшін пайдаланылады. Мынаны және ақпаратты мысалды қараңыз . |
шаблон | жол | '<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>' |
Қалқымалы файлды жасау кезінде қолданылатын негізгі HTML. Попопвер ішке Попопвер ішке
Ең сыртқы орауыш элементінде |
тақырып | жол | элемент | функциясы | '' |
Егер функция берілсе, ол |
триггер | жол | 'басу' | Popover қалай іске қосылады - | түймесін басыңыз меңзегіш | фокус | нұсқаулық. Сіз бірнеше триггерлерді өткізе аласыз; оларды бос орынмен бөліңіз. manual басқа триггермен біріктіру мүмкін емес. |
офсет | саны | жол | 0 | Попопвердің мақсатқа қатысты ығысуы. Қосымша ақпаратты Поппердің офсеттік құжаттарынан қараңыз . |
fallbackPlacement | жол | массив | «айналу» | Поппер қалпына келтіруде қандай позицияны қолданатынын көрсетуге рұқсат беріңіз. Қосымша ақпаратты Поппердің мінез-құлық құжаттарынан қараңыз |
customClass | жол | функциясы | '' | Көрсетілгенде қалқымалы терезеге сыныптарды қосыңыз. Бұл сыныптар үлгіде көрсетілген кез келген сыныптарға қосымша қосылатынын ескеріңіз. Бірнеше сыныптарды қосу үшін оларды бос орындармен бөліңіз: Сондай-ақ қосымша сынып атаулары бар жалғыз жолды қайтаратын функцияны беруге болады. |
шекара | жол | элемент | 'scrollParent' | Қалқымалы құрылғының толып кету шектеуінің шекарасы. 'viewport' , 'window' , 'scrollParent' , немесе HTMLElement сілтемесінің мәндерін қабылдайды (тек JavaScript). Қосымша ақпарат алу үшін Поппердің алдын алу Толып кету құжаттарын қараңыз . |
зарарсыздандыру | логикалық | рас | Санитизацияны қосыңыз немесе өшіріңіз. Белсендірілген болса 'template' , 'content' опциялар 'title' тазартылады. Біздің JavaScript құжаттамасындағы тазартқыш бөлімін қараңыз . |
ақ тізім | объект | Әдепкі мән | Рұқсат етілген төлсипаттар мен тегтерді қамтитын нысан |
sanitizeFn | null | функциясы | null | Мұнда сіз өзіңіздің дезинфекциялау функциясын бере аласыз. Санитизацияны орындау үшін арнайы кітапхананы пайдаланғыңыз келсе, бұл пайдалы болуы мүмкін. |
popperConfig | null | объект | null | Bootstrap әдепкі Popper конфигурациясын өзгерту үшін Поппер конфигурациясын қараңыз |
Жеке қалқандарға арналған деректер атрибуттары
Жеке қалқандарға арналған опцияларды жоғарыда түсіндірілгендей, деректер атрибуттарын пайдалану арқылы балама түрде көрсетуге болады.
Әдістері
Асинхронды әдістер мен ауысулар
Барлық API әдістері асинхронды және өтуді бастайды . Олар қоңырау шалушыға ауысу басталған бойда, бірақ аяқталмай тұрып қайтады . Сонымен қатар, өтпелі құрамдастағы әдіс шақыруы еленбейді .
Қосымша ақпарат алу үшін біздің JavaScript құжаттамасын қараңыз .
$().popover(options)
Элемент жинағы үшін қалқымалы элементтерді инициализациялайды.
.popover('show')
Элементтің қалқымалы қалпын көрсетеді. Қоңырау шалушыға қалқымалы қоңырау нақты көрсетілмей тұрып (яғни shown.bs.popover
оқиға орын алмас бұрын) қайтарады. Бұл қалқыманың «қолмен» іске қосылуы болып саналады. Тақырыптары мен мазмұны нөлге тең ұзындықтағы поповерлер ешқашан көрсетілмейді.
$('#element').popover('show')
.popover('hide')
Элементтің қалқымалы қалқымалын жасырады. Қалқымалы шын мәнінде жасырылғанға дейін (яғни оқиға орын алмас бұрын) қоңырау шалушыға оралады . hidden.bs.popover
Бұл қалқыманың «қолмен» іске қосылуы болып саналады.
$('#element').popover('hide')
.popover('toggle')
Элементтің қалқымалы параметрін ауыстырады. Қоңырау шалушыға қалқыма шын мәнінде көрсетілмей тұрып немесе жасырылғанға дейін (яғни shown.bs.popover
немесе hidden.bs.popover
оқиға болғанға дейін) қайтарады. Бұл қалқыманың «қолмен» іске қосылуы болып саналады.
$('#element').popover('toggle')
.popover('dispose')
Элементтің қалқымалы қалпын жасырады және жояды. Делегацияны пайдаланатын поповерлер ( опция арқылы жасалғанselector
) ұрпақ триггер элементтерінде жеке жойылмайды.
$('#element').popover('dispose')
.popover('enable')
Элементтің қалқымалы терезесін көрсету мүмкіндігін береді. Popovers әдепкі бойынша қосылады.
$('#element').popover('enable')
.popover('disable')
Элементтің қалқымалы нұсқасын көрсету мүмкіндігін жояды. Қалқымалы құрылғы қайта қосылғанда ғана көрсетіледі.
$('#element').popover('disable')
.popover('toggleEnabled')
Элементтің қалқымалы нұсқасын көрсету немесе жасыру мүмкіндігін ауыстырады.
$('#element').popover('toggleEnabled')
.popover('update')
Элементтің қалқымалы қалқымалы орнын жаңартады.
$('#element').popover('update')
Оқиғалар
Оқиға түрі | Сипаттама |
---|---|
show.bs.popover | show Бұл оқиға даналық әдісі шақырылған кезде бірден іске қосылады. |
көрсетілген.bs.popover | Бұл оқиға қалқымалы файл пайдаланушыға көрінетін болған кезде іске қосылады (CSS ауысуларының аяқталуын күтеді). |
hide.bs.popover | Бұл оқиға даналық hide әдісі шақырылған кезде бірден іске қосылады. |
hidden.bs.popover | Бұл оқиға қалқымалы файлды пайдаланушыдан жасыруды аяқтаған кезде іске қосылады (CSS ауысуларының аяқталуын күтеді). |
inserted.bs.popover | Бұл оқиға show.bs.popover popover үлгісі DOM файлына қосылған оқиғадан кейін іске қосылады. |
$('#myPopover').on('hidden.bs.popover', function () {
// do something...
})