Back to site

hoverIntent плагін для JQuery

Original on http://cherne.net/brian/resources/jquery.hoverIntent.html

Што такое hoverIntent?

hoverIntent гэта ўбудова, які спрабуе вызначыць намеры карыстача... як крыштальны шар, толькі з рухам мышы! Ён працуе як (і была атрымана са спісу) " JQuery убудаваная ў навядзенні. Аднак замест таго, каб неадкладна выклікаць onMouseOver функцыі, ён чакае, пакуль мыш карыстача запавольвае досыць перад выклікам.

Чаму? Каб затрымаць ці прадухіліць выпадковы абстрэл анімацыі ці Ajax выклікі. Простыя таймаўты працы для невялікіх участкаў, але калі ваша мэтавая вобласць вялікіх ён можа выконваць, незалежна ад намераў.

Запампаваць hoverIntent (цалкам каментароў, без сціску)

Запампаваць hoverIntent (паменшаная версія)

Будучыня hoverIntent

hoverIntent R5 (бягучая стабільная версія) быў распрацаваны больш трох гадоў назад (сакавік 2007). Гэта даволі стабільнай і не патрабуецца абнавіць ці выправіць памылку з тых часоў. Ён працуе з JQuery 1.1.2 праз JQuery 1.4.2.

hoverIntent R6 (у распрацоўцы) запатрабуе больш сучасную версію JQuery. Яна будзе зваротна сумяшчальны з усімі актуальнымі. HoverIntent () рэалізацыі і ўключаюць hoverIntent карыстацкія падзеі.

Прыклады

JQuery у навядзенні (для даведкі)

 $("#demo1 li").hover( makeTall, makeShort )
  • парыць над ігнаруе / з падзей ад дзяцей

JQuery убудаваны ў навядзенні званкі onMouseOver / функцый onMouseOut неадкладна.

hoverIntent як навядзенні замены

 $("#demo2 li").hoverIntent( makeTall, makeShort ) 
  • hoverIntent таксама ігнаруе над / з падзей ад дзяцей

hoverIntent узаемазаменны з навядзенні JQuery's. Ён можа выкарыстоўваць сапраўды такі ж onMouseOver і onMouseOut функцый і перадае гэта жа і аб'екты падзей гэтых функцый.

hoverIntent з аб'екта канфігурацыі

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) будзе галоўным чынам, верагодна, будзе той, які вы жадаеце, каб перавызначыць. "За" і "з" функцыі патрабуецца, але нішто не замінае вам адпраўляць пустыя функцыі () {} або.

over:

Абавязковы параметр. Функцыя, якую вы жадаеце патэлефанаваць onMouseOver. Ваша функцыя атрымлівае ж "гэта" і "падзея" аб'екты, як бы ад навядзенні метад JQuery's.

timeout:

Простая затрымка ў мілісекундах перад "з" функцыі. Калі карыстач мышэй назад на элемент да тайм-аўту мінуў "з" функцыя не будзем зваць (не будзе "за" функцыя завецца). Гэта ў першую чаргу для абароны ад неакуратна / чалавечыя мышшу траекторыі, часова (і ненаўмысна) прымаюць карыстачоў з мэтавай элемент... ім час, каб вярнуцца. даючы чаканні па змаўчанні: 0

out:

Абавязковы параметр. Функцыя, якую вы жадаеце патэлефанаваць onMouseOut. Ваша функцыя атрымлівае ж "гэта" і "падзея" аб'екты, як бы ад навядзенні метад JQuery's. Звернеце ўвагу, hoverIntent будзе выклікаць толькі "за", калі функцыя "над" функцыя была выклікана ў той жа запусціць.

Дадатковыя параметры канфігурацыі

Пры выбары налады па змаўчанні для hoverIntent Я спрабаваў знайсці найлепшы баланс паміж спагадлівасць і чашчыня лжывых спрацоўванняў. Змяніць іх, калі вы адважныя, тэст без стомы, і цалкам разумею, што вы робіце.

Адчувальнасць:

Калі мыш падарожнічае менш, чым гэты лік пікселяў паміж выбарчых інтэрвалаў, то "за" функцыя будзе выклікана. З мінімальнага парога адчувальнасці 1, мыш не павінна рухацца паміж апытаннямі інтэрвалы. Пры больш высокіх парогаў адчувальнасці ў вас больш шанцаў атрымаць ілжывыя дадатныя. Па змаўчанню адчувальнасць 7

Інтэрвал:

Колькасць hoverIntent мілісекунд чакае паміж чытаннем / параўнанні каардынаты мышы. Калі мыш карыстача ўпершыню ўваходзіць элемент яе каардынаты запісваюцца. Хутчэй "за" функцыя можа быць выклікана ёсць пасля аднаго інтэрвалу апытання. Налада інтэрвалу апытання вышэй будзе павелічэнне затрымкі да першай магчымасці "на" выклік, але і павялічвае час да наступнай кропкі параўнанні: па змаўчанні. Інтэрвале 100

Апавяшчэнне о DOM маніпуляцыі

hoverIntent дадае два карыстацкія атрыбуты для кожнага элемента DOM ён прызначаны. Напрыклад: <li hoverIntent_t="" hoverIntent_s="">

  • hoverIntent_t з'яўляецца таймер інтэрвалу апытання, ці mouseOut таймер.
  • hoverIntent_s крамы дзяржава, каб прадухіліць неперасягненай выклікаў функцый.

Таймеры захоўваюцца як цэлыя лікі, таму там не павінна быць ніякіх праблем з уцечкамі памяці. hoverIntent стан таксама захоўваецца як цэлае.

Вядомыя памылкі

Калі вы змесціце элемент з onMouseOut слухачоў падзей ушчыльную краі браўзара Chrome, часам Internet Explorer не выклікае onMouseOut падзея неадкладна, калі мыш лісце дакумента. hoverIntent не правільна для гэтага.

Ці з'яўляецца гэта памылка ці асаблівасць? JQuery. навядзенні () можа прымаць як handlerIn і handlerOut, / ці / проста handlerIn. Мой. HoverIntent () убудовы прымае як handlerIn і handlerOut, / ці / аднаго аб'екта канфігурацыі. Ён не прызначаны для займаюць усяго handlerIn як. Навядзенні (). Наступная версія (R6) будзе больш гнуткім.

Ці з'яўляецца гэта памылка ці асаблівасць? Таму што. Навядзенні () і. HoverIntent () і ігнараваць больш / з падзей ад даччыных вузлоў (з выкарыстаннем "вяртанне лжывых"), гэта таксама прадухіляе StatusBar счытванні ўкладзеных якар Крыжаваныя спасылкі тэг. Ніводны з вядомых выправіць гэта вядома на дадзены момант.

Калі ласка, звяжыцеся са мной (brian@cherne.net), калі вы жадаеце атрымліваць апавяшчэнні непасрэдна любых памылак / выпраўленні / абнаўленні. Аб'явы будуць таксама на JQuery форум.

Гісторыя змен

  • R6 = падчас развіцці (травень 2010). Даданне карыстацкіх падзей.
  • R5 = Бягучы стабільны рэліз. Дададзена стане прадухіліць неперасягненай выклікаў функцый. Сумяшчальнасць з JQuery 1.1.2 праз JQuery 1.4.2
  • R4 = Выпраўлена інтэрвал апытання пытанне часу (у наш час выкарыстоўвае самастойна выкліку тайм-аўт, каб пазбегнуць парушэнні інтэрвалу).
  • R3 = распрацоўніка-рэліз толькі для адладкі.
  • R2 = Дададзена тайм-аўт і інтэрвал спасылкі на аб'ект DOM - працягвае таймеры асобна адзін ад аднаго. Дададзены наладжвальныя параметры. Дададзены таймаўт магчымасць затрымкі onMouseOut выкліку функцыі. Выпраўлены дзве-інтэрвалу MouseOver памылка (у наш час усталёўка рх і ру onMouseOver замест цвёрда значэнні).
  • R1 = Першы выпуск на JQuery дыскусійны форум для зваротнай сувязі.
Popular Links
Published (Last edited): Feb 14