Source

Поповерлер

Құжаттар мен сайтыңыздағы кез келген элементке iOS жүйесінде табылғандар сияқты Bootstrap қалқымалы файлдарын қосуға арналған мысалдар.

Шолу

Popover плагинін пайдалану кезінде білу керек нәрселер:

  • Поповерлер орналасу үшін үшінші тарап Popper.js кітапханасына сүйенеді . Popovers жұмыс істеуі үшін bootstrap.js алдында popper.min.js қосу керек немесе Popper.js бар bootstrap.bundle.min.js/ пайдалану керек bootstrap.bundle.js!
  • Popovers тәуелділік ретінде құралдар тақтасының плагинін қажет етеді.
  • Егер сіз JavaScript-ті дереккөзден құрастырсаңыз, олutil.js .
  • Popovers өнімділік себептері бойынша қосылады, сондықтан оларды өзіңіз баптандыруыңыз керек .
  • Нөлдік ұзындық titleпен contentмәндер ешқашан қалқымалы терезені көрсетпейді.
  • container: 'body'Күрделі құрамдас бөліктерде (мысалы, енгізу топтары, түймелер топтары, т.б.) ақауларды көрсетпеу үшін көрсетіңіз .
  • Жасырын элементтерде қалқандарды іске қосу жұмыс істемейді.
  • .disabledҚаптама элементінде немесе disabledэлементтер үшін поповерлер іске қосылуы керек.
  • Бірнеше жолдар бойымен оралатын якорьлерден іске қосылғанда, қалқымалы белгілер якорьдің жалпы ені арасында ортаға орналасады. Бұл әрекетті болдырмау үшін s .text-nowrapon 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="Vivamus sagittis lacus vel augue laoreet rutrum faucibus.">
  Popover on top
</button>

<button type="button" class="btn btn-secondary" data-container="body" data-toggle="popover" data-placement="right" data-content="Vivamus sagittis lacus vel augue laoreet rutrum faucibus.">
  Popover on right
</button>

<button type="button" class="btn btn-secondary" data-container="body" data-toggle="popover" data-placement="bottom" data-content="Vivamus
sagittis lacus vel augue laoreet rutrum faucibus.">
  Popover on bottom
</button>

<button type="button" class="btn btn-secondary" data-container="body" data-toggle="popover" data-placement="left" data-content="Vivamus sagittis lacus vel augue laoreet rutrum faucibus.">
  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)

Пернетақта мен көмекші технология пайдаланушылары үшін поповерлер жұмыс істеуге мүмкіндік береді

Пернетақта пайдаланушыларына қалқымалы терезелерді белсендіруге рұқсат беру үшін оларды дәстүрлі түрде пернетақтаға бағдарланатын және интерактивті (сілтемелер немесе пішін басқару элементтері сияқты) HTML элементтеріне ғана қосу керек. Еркін HTML элементтерін (мысалы, <span>s) tabindex="0"атрибут қосу арқылы фокустайтын етіп жасауға болады, бірақ бұл пернетақта пайдаланушылары үшін интерактивті емес элементтерге әлеуетті тітіркендіргіш және шатастыратын қойындыларды қосады және қазіргі уақытта көптеген көмекші технологиялар бұл жағдайда қалқымалы мазмұнды жарияламайды. . hoverОған қоса, тек қалқымалы файлдар үшін триггер ретінде ғана сенбеңіз, себебі бұл оларды пернетақта пайдаланушылары үшін іске қосу мүмкін емес етеді.

Опциясы бар қалқымалы терезелерге бай, құрылымды HTML кірістіре алатын htmlболсаңыз да, мазмұнның шамадан тыс мөлшерін қосудан аулақ болуды ұсынамыз. Қалқымалы құрылғылардың қазіргі уақытта жұмыс істеу тәсілі - көрсетілгеннен кейін олардың мазмұны төлсипатпен триггер элементімен aria-describedbyбайланыстырылады. Нәтижесінде, popover мазмұнының толық бөлігі көмекші технология пайдаланушыларына бір ұзақ, үздіксіз ағын ретінде жарияланады.

Сонымен қатар, қалқымалы құралға интерактивті басқару элементтерін (пішін элементтері немесе сілтемелер сияқты) қосу мүмкін болса да (осы элементтерді whiteListнемесе рұқсат етілген төлсипаттар мен тегтерге қосу арқылы), қалқымалы құрал қазіргі уақытта пернетақта фокус ретін басқармайтынын ескеріңіз. Пернетақта пайдаланушысы қалқымалы терезені ашқанда, фокус іске қосу элементінде қалады және қалқымалы құрылғы әдетте құжат құрылымындағы триггерді бірден орындамайтындықтан, алға жылжу/басу кепілдігі жоқ.TABпернетақта пайдаланушысын қалқымалы терезеге жылжытады. Қысқасы, қалқымалы терезеге жай ғана интерактивті басқару элементтерін қосу бұл басқару элементтерін пернетақта пайдаланушылары мен көмекші технологияларды пайдаланушылар үшін қол жетімсіз/пайдасыз етеді немесе кем дегенде логикалық емес жалпы фокус тәртібін жасайды. Мұндай жағдайларда оның орнына модальды диалогты пайдалануды қарастырыңыз.

Опциялар

Опцияларды деректер атрибуттары немесе JavaScript арқылы жіберуге болады. Деректер атрибуттары үшін параметр атауын ішінде data-сияқты қосыңыз data-animation="".

Қауіпсіздік мақсатында sanitize, sanitizeFnжәне whiteListопциялары деректер атрибуттары арқылы қамтамасыз етілмейтінін ескеріңіз.

Аты Түр Әдепкі Сипаттама
анимация логикалық рас Қалқымалы файлға CSS өшіру көшуін қолданыңыз
контейнер жол | элемент | жалған жалған

Қалқымалы элементті белгілі бір элементке қосады. Мысалы: container: 'body'. Бұл опция әсіресе пайдалы, себебі ол қалқымалы элементті құжат ағынында іске қосу элементінің жанында орналастыруға мүмкіндік береді - бұл терезе өлшемін өзгерту кезінде қалқымалы элементтің іске қосу элементінен алыстап кетуіне жол бермейді.

мазмұны жол | элемент | функциясы ''

data-contentТөлсипат болмаса, әдепкі мазмұн мәні .

Егер функция берілсе, ол thisқалқымалы элемент қосылған элементке сілтеме жиынымен шақырылады.

кешіктіру саны | объект 0

Қалқымалы файлды көрсету және жасыру кідірісі (мс) - қолмен триггер түріне қолданылмайды

Егер нөмір берілсе, кідіріс жасыру/көрсету үшін де қолданылады

Объектінің құрылымы – бұл:delay: { "show": 500, "hide": 100 }

html логикалық жалған Қалқымалы файлға HTML енгізіңіз. Егер жалған болса, jQuery textәдісі мазмұнды DOM ішіне енгізу үшін пайдаланылады. XSS шабуылдары туралы алаңдасаңыз, мәтінді пайдаланыңыз.
орналастыру жол | функциясы 'дұрыс'

Қалқымалы құрылғыны қалай орналастыруға болады - авто | жоғарғы | төменгі | сол жақ | дұрыс.
Көрсетілгенде , autoол қалқымалы файлдың бағытын динамикалық түрде өзгертеді.

Орналастыруды анықтау үшін функция пайдаланылған кезде, ол бірінші аргумент ретінде popover DOM түйінімен, ал екінші ретінде іске қосу элементі DOM түйінімен шақырылады. Мәтінмән thispopover данасына орнатылған.

селектор жол | жалған жалған Егер селектор берілсе, қалқымалы нысандар көрсетілген мақсаттарға беріледі. Іс жүзінде бұл динамикалық HTML мазмұнына қалқымалы файлдарды қосу үшін пайдаланылады. Мынаны және ақпаратты мысалды қараңыз .
шаблон жол '<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>'

Қалқымалы файлды жасау кезінде қолданылатын негізгі HTML.

Попопвер ішке titleенгізіледі .popover-header.

Попопвер ішке contentенгізіледі .popover-body.

.arrowпоповердің жебесіне айналады.

Ең сыртқы орауыш элементінде .popoverсынып болуы керек.

тақырып жол | элемент | функциясы ''

titleТөлсипат болмаса, әдепкі тақырып мәні .

Егер функция берілсе, ол thisқалқымалы элемент қосылған элементке сілтеме жиынымен шақырылады.

триггер жол 'басу' Popover қалай іске қосылады - | түймесін басыңыз меңзегіш | фокус | нұсқаулық. Сіз бірнеше триггерлерді өткізе аласыз; оларды бос орынмен бөліңіз. manualбасқа триггермен біріктіру мүмкін емес.
офсет саны | жол 0 Мақсатқа қатысты поповердің ығысуы. Қосымша ақпаратты Popper.js офсеттік құжаттарынан қараңыз .
fallbackPlacement жол | массив «айналу» Поппер қалпына келтіруде қандай позицияны қолданатынын көрсетуге рұқсат беріңіз. Қосымша ақпаратты Popper.js мінез-құлық құжаттарынан қараңыз
шекара жол | элемент 'scrollParent' Қалқымалы құрылғының толып кету шектеуінің шекарасы. 'viewport', 'window', 'scrollParent', немесе HTMLElement сілтемесінің мәндерін қабылдайды (тек JavaScript). Қосымша ақпаратты Popper.js's preventOverflow құжаттарынан қараңыз .
зарарсыздандыру логикалық рас Санитизацияны қосыңыз немесе өшіріңіз. Белсендірілген болса 'template', 'content'опциялар 'title'тазартылады.
ақ тізім объект Әдепкі мән Рұқсат етілген төлсипаттар мен тегтерді қамтитын нысан
sanitizeFn null | функциясы null Мұнда сіз өзіңіздің дезинфекциялау функциясын бере аласыз. Санитизацияны орындау үшін арнайы кітапхананы пайдаланғыңыз келсе, бұл пайдалы болуы мүмкін.
popperConfig null | объект null Bootstrap әдепкі Popper.js конфигурациясын өзгерту үшін Popper.js конфигурациясын қараңыз .

Жеке қалқандарға арналған деректер атрибуттары

Жеке қалқандарға арналған опцияларды жоғарыда түсіндірілгендей деректер атрибуттарын пайдалану арқылы балама түрде көрсетуге болады.

Әдістері

Асинхронды әдістер мен ауысулар

Барлық 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.popoverpopover үлгісі DOM файлына қосылған оқиғадан кейін іске қосылады.
$('#myPopover').on('hidden.bs.popover', function () {
  // do something...
})