Cov lus qhia zoo li qhov teeb meem UI tsawg tshaj plaws uas koj tuaj yeem muaj. Lawv me me thiab feem ntau yog zais. Thaum ib tug neeg nug yuav ua li cas los tsim ib qho, cov lus teb ib txwm yuav luag ib txwm rov qab los siv qee lub tsev qiv ntawv JavaScript. Thiab tau ntev heev, qhov ntawd yog cov lus qhia paub zoo. Kuv ua raws li nws thiab. Nyob rau saum npoo, ib tug tooltip yog yooj yim. Hover los yog tsom mus rau ib lub ntsiab lus, qhia lub thawv me me nrog qee cov ntawv nyeem, tom qab ntawd nkaum nws thaum tus neeg siv txav mus. Tab sis thaum koj xa ib qho mus rau cov neeg siv tiag tiag, cov npoo pib qhia. Cov neeg siv Keyboard Tab rau hauv qhov ua, tab sis tsis pom cov lus qhia. Cov neeg nyeem ntawv tshaj tawm nws ob zaug, lossis tsis yog. Lub cuab yeej flickers thaum koj txav tus nas sai heev. Nws overlaps cov ntsiab lus ntawm cov ntxaij vab tshaus me. Nias Esc tsis kaw nws. Ua kom pom tseeb poob. Nyob rau tib lub sijhawm, kuv tus lej cim qhia tau loj hlob mus rau ib yam dab tsi uas kuv tsis xav muaj ntxiv lawm. Cov neeg mloog cov xwm txheej tau sib sau ua ke. Hover thiab tsom xam yuav tsum tau tuav nyias. Sab nraud clicks xav tau cov xwm txheej tshwj xeeb. ARIA tus cwj pwm yuav tsum tau khaws cia hauv sync los ntawm tes. Txhua qhov kho me me ntxiv lwm txheej txheej ntawm logic. Cov tsev qiv ntawv tau pab, tab sis lawv kuj zoo li lub thawv dub uas kuv tau ua haujlwm ib puag ncig es tsis txhob nkag siab txog qhov tshwm sim tom qab qhov xwm txheej. Qhov ntawd yog qhov uas tau thawb kuv mus saib Popover API tshiab. Kuv xav pom dab tsi yuav tshwm sim yog tias kuv rov tsim dua ib qho kev qhia siv tus browser tus qauv ib txwm tsis muaj kev pab ntawm lub tsev qiv ntawv. Raws li peb pib, nws tsim nyog sau cia tias, ib yam li nrog cov yam ntxwv tshiab, muaj qee yam nrog nws uas tseem raug ironed tawm. Uas tau hais tias, tam sim no nws nyiam qhov browser txhawb nqa zoo, txawm hais tias muaj ntau daim rau tag nrho API uas nyob hauv flux. Nws tsim nyog saib xyuas Caniuse nyob rau lub sijhawm no. Nyem "Kub" Tooltip Ua ntej Popover API, siv lub tsev qiv ntawv cov lus qhia tsis yog ib qho shortcut. Nws yog lub neej ntawd. Browsers tsis muaj lub tswv yim ib txwm muaj ntawm cov lus qhia uas ua haujlwm hla tus nas, keyboard, thiab kev pabcuam thev naus laus zis. Yog tias koj mob siab txog qhov raug, koj txoj kev xaiv tsuas yog siv lub tsev qiv ntawv, thiab qhov ntawd yog qhov kuv tau ua. Nyob rau theem siab, tus qauv yeej ib txwm zoo ib yam: lub ntsiab lus tshwm sim, lub ntsiab lus zais zais, thiab JavaScript los tswj ob.
Lub tsev qiv ntawv tau tuav cov xaim uas tso cai rau lub ntsiab kom pom ntawm hover lossis ua kom pom tseeb, nkaum ntawm qhov muag plooj lossis nas tawm, thiab hloov pauv / hloov pauv ntawm scroll.
Nyob rau tib lub sijhawm, cov lus qhia tuaj yeem ua tsis yooj yim. Cov kev hloov me me ua rau muaj kev pheej hmoo. Kev kho me me ua rau muaj kev rov qab los. Qhov phem tshaj, ntxiv cov lus qhia tshiab tau txais tib qhov nyuaj. Tej yam technically ua hauj lwm, tab sis yeej tsis hnov tsw los yog ua kom tiav. Qhov ntawd yog lub xeev ntawm tej yam thaum kuv txiav txim siab los tsim kho cov lus qhia siv browser tus neeg Popover API. Lub Sijhawm Kuv sim Popover API Kuv tsis tau hloov mus siv Popover API vim kuv xav sim nrog qee yam tshiab. Kuv tau hloov vim kuv nkees ntawm kev tswj hwm tus cwj pwm uas kuv ntseeg tias tus browser yuav tsum tau nkag siab. Kuv tsis ntseeg thaum xub thawj. Feem ntau lub vev xaib APIs tau cog lus yooj yim, tab sis tseem xav tau cov kua nplaum, cov ntaub ntawv tuav, lossis cov logic rov qab uas ntsiag to recreates tib qhov nyuaj uas koj tau sim khiav. Yog li, kuv sim Popover API hauv txoj kev tsawg tshaj plaws. Nov yog qhov uas zoo li:
1. Cov Keyboard "Tsuas Ua Haujlwm" Kev them nyiaj yug keyboard nyob ntawm ntau txheej txheej txheej kom raug: ua kom pom tseeb yuav tsum ua rau cov lus qhia, qhov muag plooj yuav tsum tau nkaum nws, Esc yuav tsum tau xaim manually, thiab lub sijhawm teeb meem. Yog tias koj plam ib rooj plaub ntug, cov lus qhia yuav qhib ntev dhau los lossis ploj ua ntej nws tuaj yeem nyeem. Nrog rau tus cwj pwm popover teem rau nws pib lossis phau ntawv, tus browser siv cov hauv paus: Tab thiab Shift +Tab coj ib txwm, Esc kaw cov lus qhia txhua zaus, thiab tsis tas yuav muaj cov mloog ntxiv.
Dab tsi ploj los ntawm kuv cov codebase yog cov neeg ua haujlwm tseem ceeb thoob ntiaj teb, Esc-tshwj xeeb kev tu lub logic, thiab lub xeev cov tshev thaum lub sij hawm keyboard navigation. Cov kev paub keyboard nres ua ib yam dab tsi uas kuv yuav tsum tau tswj, thiab nws tau dhau los ua qhov browser lav. 2. Screenreader Predictability Qhov no yog tuskev txhim kho loj tshaj plaws. Txawm hais tias ua haujlwm ARIA ceev faj, tus cwj pwm txawv, raws li kuv tau hais dhau los. Txhua qhov kev hloov me me muaj kev pheej hmoo. Siv lub popover nrog lub luag haujlwm kom zoo saib thiab pom tau tias muaj kev ruaj khov thiab kwv yees ntau npaum li qhov yuav tshwm sim:
Thiab ntawm no yog lwm qhov yeej: Tom qab qhov kev hloov pauv, Lighthouse tau tso tseg tsis raug ARIA lub xeev cov lus ceeb toom rau kev sib cuam tshuam, feem ntau vim tias tsis muaj kev cai ARIA hais rau kuv ua yuam kev lawm.
3. Kev tswj kom pom tseeb Kev tsom xam siv los ua tsis yooj yim. Ua ntej, kuv muaj cov cai xws li: cia ua kom pom tseeb qhia cov lus qhia, txav mus rau hauv cov lus qhia thiab tsis txhob kaw, plooj qhov tshwm sim thaum nws ze dhau, thiab kaw cov lus qhia thiab rov ua kom pom tseeb manually. Qhov no ua haujlwm mus txog thaum nws tsis ua. Nrog rau Popover API, tus browser tswj hwm tus qauv yooj yim uas ua kom pom tseeb tuaj yeem txav mus rau hauv qhov popover. Kaw lub popover rov qab tsom mus rau qhov tshwm sim, thiab tsis muaj qhov pom tsis pom qhov ntxiab lossis lub sijhawm tsis pom tseeb. Thiab kuv tsis tau ntxiv cov kev kho kom zoo dua qub; Kuv tshem nws.
Xaus Popover API txhais tau hais tias cov lus qhia tsis yog ib yam uas koj simulate. Lawv yog ib yam uas browser nkag siab. Qhib, kaw, tus cwj pwm keyboard, khiav khiav, thiab ib qho loj ntawm kev nkag tau tam sim no los ntawm lub platform nws tus kheej, tsis yog los ntawm ad-hoc JavaScript. Qhov ntawd tsis tau txhais hais tias cov cuab yeej cuab tam cov tsev qiv ntawv tau siv tsis tau vim tias lawv tseem ua rau kev nkag siab rau cov qauv tsim, kev hloov kho hnyav, lossis kev txwv qub, tab sis lub neej ntawd tau hloov pauv. Thawj zaug, cov lus qhia yooj yim tshaj plaws kuj tuaj yeem yog qhov tseeb tshaj plaws. Yog tias koj xav paub, sim ua qhov kev sim no: Tsuas yog hloov ib qho lus qhia hauv koj cov khoom nrog Popover API, tsis txhob rov sau txhua yam, tsis txhob txav mus rau tag nrho cov kab ke, thiab xaiv ib qho thiab pom dab tsi ploj ntawm koj cov cai. Thaum lub platform muab rau koj zoo dua qub, qhov yeej tsis yog tsawg dua kab ntawm JavaScript, tab sis nws yog tsawg dua yam koj yuav tsum txhawj txog txhua. Tshawb xyuas tag nrho cov cai hauv kuv GitHub repo. Nyeem ntxiv Rau kev dhia dej tob rau hauv popovers thiab lwm yam APIs:
"Poppin 'In", Geoff Graham "Kev Tshaj Tawm Txog Kev Sib Raug Zoo Ntawm Popovers thiab Dialogs", Zell Liew "Dab tsi yog popover = hint?", Una Kravets "Invoker Commands", Daniel Schwarz "Tsim ib Daim Ntawv Ceeb Toom Kaw Pib nrog HTML Popover", Preethi Qhib UI Popover API Explainer "Pop (dhau) Balloons", John Rhea "CSS Anchor Positioning", Juan Diego Rodríguez
MDN tseem muaj cov ntaub ntawv qhia txog kev siv rau Popover API.