hoverIntent гэта ўбудова, які спрабуе вызначыць намеры карыстача... як крыштальны шар, толькі з рухам мышы! Ён працуе як (і была атрымана са спісу) " JQuery убудаваная ў навядзенні. Аднак замест таго, каб неадкладна выклікаць onMouseOver функцыі, ён чакае, пакуль мыш карыстача запавольвае досыць перад выклікам.
Чаму? Каб затрымаць ці прадухіліць выпадковы абстрэл анімацыі ці Ajax выклікі. Простыя таймаўты працы для невялікіх участкаў, але калі ваша мэтавая вобласць вялікіх ён можа выконваць, незалежна ад намераў.
Запампаваць hoverIntent (цалкам каментароў, без сціску)
Запампаваць hoverIntent (паменшаная версія)
hoverIntent R5 (бягучая стабільная версія) быў распрацаваны больш трох гадоў назад (сакавік 2007). Гэта даволі стабільнай і не патрабуецца абнавіць ці выправіць памылку з тых часоў. Ён працуе з JQuery 1.1.2 праз JQuery 1.4.2.
hoverIntent R6 (у распрацоўцы) запатрабуе больш сучасную версію JQuery. Яна будзе зваротна сумяшчальны з усімі актуальнымі. HoverIntent () рэалізацыі і ўключаюць hoverIntent карыстацкія падзеі.
$("#demo1 li").hover( makeTall, makeShort )
JQuery убудаваны ў навядзенні званкі onMouseOver / функцый onMouseOut неадкладна.
$("#demo2 li").hoverIntent( makeTall, makeShort )
hoverIntent узаемазаменны з навядзенні JQuery's. Ён можа выкарыстоўваць сапраўды такі ж onMouseOver і onMouseOut функцый і перадае гэта жа і аб'екты падзей гэтых функцый.
var config = {
over: makeTall, // function = onMouseOver callback (REQUIRED)
timeout: 500, // number = milliseconds delay before onMouseOut
out: makeShort // function = onMouseOut callback (REQUIRED)
};
$("#demo3 li").hoverIntent( config )
Каб змяніць налады па змаўчанні з hoverIntent, перадаць яго аб'ект як першы (і адзіны) параметр. Аб'ект павінен утрымоўваць "за" і "з" функцый, у дадатак да любой іншай опцыі вы жадаеце перавызначыць.
"Тайм-аўт" затрымка (па змаўчанні ўсталяваны ў 0) будзе галоўным чынам, верагодна, будзе той, які вы жадаеце, каб перавызначыць. "За" і "з" функцыі патрабуецца, але нішто не замінае вам адпраўляць пустыя функцыі () {} або.
Абавязковы параметр. Функцыя, якую вы жадаеце патэлефанаваць onMouseOver. Ваша функцыя атрымлівае ж "гэта" і "падзея" аб'екты, як бы ад навядзенні метад JQuery's.
Простая затрымка ў мілісекундах перад "з" функцыі. Калі карыстач мышэй назад на элемент да тайм-аўту мінуў "з" функцыя не будзем зваць (не будзе "за" функцыя завецца). Гэта ў першую чаргу для абароны ад неакуратна / чалавечыя мышшу траекторыі, часова (і ненаўмысна) прымаюць карыстачоў з мэтавай элемент... ім час, каб вярнуцца. даючы чаканні па змаўчанні: 0
Абавязковы параметр. Функцыя, якую вы жадаеце патэлефанаваць onMouseOut. Ваша функцыя атрымлівае ж "гэта" і "падзея" аб'екты, як бы ад навядзенні метад JQuery's. Звернеце ўвагу, hoverIntent будзе выклікаць толькі "за", калі функцыя "над" функцыя была выклікана ў той жа запусціць.
Пры выбары налады па змаўчанні для hoverIntent Я спрабаваў знайсці найлепшы баланс паміж спагадлівасць і чашчыня лжывых спрацоўванняў. Змяніць іх, калі вы адважныя, тэст без стомы, і цалкам разумею, што вы робіце.
Калі мыш падарожнічае менш, чым гэты лік пікселяў паміж выбарчых інтэрвалаў, то "за" функцыя будзе выклікана. З мінімальнага парога адчувальнасці 1, мыш не павінна рухацца паміж апытаннямі інтэрвалы. Пры больш высокіх парогаў адчувальнасці ў вас больш шанцаў атрымаць ілжывыя дадатныя. Па змаўчанню адчувальнасць 7
Колькасць hoverIntent мілісекунд чакае паміж чытаннем / параўнанні каардынаты мышы. Калі мыш карыстача ўпершыню ўваходзіць элемент яе каардынаты запісваюцца. Хутчэй "за" функцыя можа быць выклікана ёсць пасля аднаго інтэрвалу апытання. Налада інтэрвалу апытання вышэй будзе павелічэнне затрымкі да першай магчымасці "на" выклік, але і павялічвае час да наступнай кропкі параўнанні: па змаўчанні. Інтэрвале 100
hoverIntent дадае два карыстацкія атрыбуты для кожнага элемента DOM ён прызначаны. Напрыклад: <li hoverIntent_t="" hoverIntent_s="">
Таймеры захоўваюцца як цэлыя лікі, таму там не павінна быць ніякіх праблем з уцечкамі памяці. hoverIntent стан таксама захоўваецца як цэлае.
Калі вы змесціце элемент з onMouseOut слухачоў падзей ушчыльную краі браўзара Chrome, часам Internet Explorer не выклікае onMouseOut падзея неадкладна, калі мыш лісце дакумента. hoverIntent не правільна для гэтага.
Ці з'яўляецца гэта памылка ці асаблівасць? JQuery. навядзенні () можа прымаць як handlerIn і handlerOut, / ці / проста handlerIn. Мой. HoverIntent () убудовы прымае як handlerIn і handlerOut, / ці / аднаго аб'екта канфігурацыі. Ён не прызначаны для займаюць усяго handlerIn як. Навядзенні (). Наступная версія (R6) будзе больш гнуткім.
Ці з'яўляецца гэта памылка ці асаблівасць? Таму што. Навядзенні () і. HoverIntent () і ігнараваць больш / з падзей ад даччыных вузлоў (з выкарыстаннем "вяртанне лжывых"), гэта таксама прадухіляе StatusBar счытванні ўкладзеных якар Крыжаваныя спасылкі тэг. Ніводны з вядомых выправіць гэта вядома на дадзены момант.
Калі ласка, звяжыцеся са мной (brian@cherne.net), калі вы жадаеце атрымліваць апавяшчэнні непасрэдна любых памылак / выпраўленні / абнаўленні. Аб'явы будуць таксама на JQuery форум.