Ili kupanga vitendo kadhaa kwa kujibu harakati za mshale kwenye dirisha la kivinjari, wakati mwingine ni muhimu kuamua kuratibu zake. Hii inaweza kufanywa na hati ambayo ina uwezo wa kufuatilia hafla zinazotokea kwenye kivinjari. Hati ya JavaScript ya mteja ina uwezo huu. Hapo chini imeelezewa moja ya chaguzi za kupata kuratibu za mshale kutumia uwezo wa lugha hii.
Maagizo
Hatua ya 1
Tumia mali ya kitu cha hafla kupata kuratibu za mshale sasa. Kitu hiki kina seti nzima ya mali ambayo ni muhimu kwa kuamua kuratibu za mshale wa panya. Mali ya LayerX ina umbali uliopimwa kwa saizi kutoka ukingo wa kushoto wa safu ya sasa, na LayerY - umbali sawa kutoka ukingo wake wa juu. Sifa hizi mbili zina visawe - badala ya tukio. LayerX, unaweza kuandika tukio.x, na badala ya tukio. LayerY, unaweza kuandika tukio.y. Ukurasa wa X na ukurasaY unashikilia uratibu wa usawa na wima wa mshale kulingana na ukingo wa kushoto wa juu wa dirisha la kivinjari, na mali za skriniX na skrini zinashikilia maadili sawa kulingana na skrini ya kufuatilia.
Hatua ya 2
Ongeza aina ya kivinjari kuangalia kwa nambari yako na tumia mali ya mtejaX na mtejaY pamoja na mali zilizo hapo juu kwenye kitu cha tukio. Hii ni muhimu kwa sababu Microsoft hutumia muundo tofauti wa mali katika kivinjari chake cha Internet Explorer. Unaweza kuchanganya njia zote mbili za kuamua kuratibu, kwa mfano, kama hii:
ikiwa (evevnt.pageX || evevnt.pageY) {
kuratibuX = evevnt.pageX;
kuratibuY = evevnt.pageY;
}
vinginevyo ikiwa (evevnt.clientX || evevnt.clientY) {
kuratibuX = evevnt.clientX + (document.documentElement.scrollLeft || document.body.scrollLeft) - document.documentElement.clientLeft;
kuratibuY = evevnt.clientY + (document.documentElement.scrollTop || document.body.scrollTop) - hati.documentElement.clientTop;
}
Hatua ya 3
Weka nambari ya ufafanuzi wa kuratibu katika kazi ya kawaida. Kwa mfano:
kazi GetMouse (evevnt) {
var kuratibu X = 0, kuratibuY = 0;
ikiwa (! evevnt) evevnt = dirisha.event;
ikiwa (evevnt.pageX || evevnt.pageY) {
kuratibuX = evevnt.pageX;
kuratibuY = evevnt.pageY;
}
vinginevyo ikiwa (evevnt.clientX || evevnt.clientY) {
kuratibuX = evevnt.clientX + (document.documentElement.scrollLeft || document.body.scrollLeft) - document.documentElement.clientLeft;
kuratibuY = evevnt.clientY + (document.documentElement.scrollTop || document.body.scrollTop) - hati.documentElement.clientTop;
}
kurudi {"coordX": coordinateX, "coordY": kuratibuY};
}
Kazi hii inarudisha safu ya vitu viwili vyenye jina, ambayo ya kwanza (na ufunguo wa coordX) ina uratibu wa X, na ya pili (coordY) ina uratibu wa Y
Hatua ya 4
Piga kazi hii kwenye hafla fulani - kwa mfano, kwenye tukio la hoja ya panya (onmousemove) katika muktadha wa hati. Sampuli hapa chini hutumia kazi kutoa panya kuratibu kwa upau wa hali:
hati.onmousemove = kazi (evevnt) {var CurCoord = GetMouse (evevnt); window.status = "coord X:" + CurCoord.coordX + "px, uratibu Y:" + CurCoord.coordY + "px";};