У ÑÑÐ¾Ð¼Ñ ÑоздÑÐ»Ñ Ð¼Ð¸ докладнÑÑе ÑозглÑнемо подÑÑ Ð¼Ð¸ÑÑ Ñа ÑÑ Ð²Ð»Ð°ÑÑивоÑÑÑ.
ÐвеÑнÑÑÑ ÑвагÑ: подÑÐ±Ð½Ñ Ð¿Ð¾Ð´ÑÑ Ð¼Ð¾Ð¶ÑÑÑ Ð½Ð°Ð´Ñ Ð¾Ð´Ð¸Ñи не ÑÑлÑки вÑд миÑÑ, але й з ÑнÑÐ¸Ñ Ð¿ÑиÑÑÑоÑв, ÑÐ°ÐºÐ¸Ñ Ñк ÑелеÑони Ñа планÑеÑи, де вони емÑлÑÑÑÑÑÑ Ð´Ð»Ñ ÑÑмÑÑноÑÑÑ.
Типи подÑй миÑÑ
Ðи вже баÑили деÑÐºÑ Ð· ÑÐ¸Ñ Ð¿Ð¾Ð´Ñй:
mousedown/mouseup- ÐлÑканнÑ/вÑдпÑÑÐºÐ°Ð½Ð½Ñ ÐºÐ½Ð¾Ð¿ÐºÐ¸ миÑÑ Ð½Ð°Ð´ елеменÑом.
mouseover/mouseout- ÐÑÑÑÐ¾Ñ Ð·Ð°Ñ Ð¾Ð´Ð¸ÑÑ/Ð²Ð¸Ñ Ð¾Ð´Ð¸ÑÑ Ð· елеменÑа.
mousemove- Ðожне пеÑемÑÑÐµÐ½Ð½Ñ Ð¼Ð¸ÑÑ Ð½Ð°Ð´ елеменÑом Ð²Ð¸ÐºÐ»Ð¸ÐºÐ°Ñ ÑÑ Ð¿Ð¾Ð´ÑÑ.
click- СпÑаÑÑовÑÑ Ð¿ÑÑлÑ
mousedown, а поÑÑмmouseupнад Ñим же елеменÑом, ÑкÑо бÑла викоÑиÑÑана лÑва кнопка миÑÑ. dblclick- СпÑаÑÑовÑÑ Ð¿ÑÑÐ»Ñ Ð´Ð²Ð¾Ñ ÐºÐ»ÑкÑв на Ð¾Ð´Ð½Ð¾Ð¼Ñ ÐµÐ»ÐµÐ¼ÐµÐ½ÑÑ Ð·Ð° коÑоÑкий пÑомÑжок ÑаÑÑ. Ðа ÑÑогоднÑÑнÑй Ð´ÐµÐ½Ñ ÑÑдко викоÑиÑÑовÑÑÑÑÑÑ.
contextmenu- СпÑаÑÑовÑÑ Ð¿Ñи наÑиÑÐºÐ°Ð½Ð½Ñ Ð¿ÑÐ°Ð²Ð¾Ñ ÐºÐ½Ð¾Ð¿ÐºÐ¸ миÑÑ. Рй ÑнÑÑ ÑпоÑоби вÑдкÑиÑи конÑекÑÑне менÑ, напÑ. за Ð´Ð¾Ð¿Ð¾Ð¼Ð¾Ð³Ð¾Ñ ÑпеÑÑалÑÐ½Ð¾Ñ ÐºÐ»Ð°Ð²ÑÑÑ Ð½Ð° клавÑаÑÑÑÑ, але Ñе вже не зовÑÑм подÑÑ Ð¼Ð¸ÑÑ.
â¦Ð¢Ð°ÐºÐ¾Ð¶ ÑÑнÑÑÑÑ ÐºÑлÑка ÑнÑÐ¸Ñ Ð¿Ð¾Ð´Ñй, пÑо Ð½Ð¸Ñ Ð¼Ð¸ ÑозповÑмо пÑзнÑÑе.
ÐоÑÑдок подÑй
Як ви можеÑе баÑиÑи Ð·Ñ ÑпиÑÐºÑ Ð²Ð¸Ñе, дÑÑ ÐºÐ¾ÑиÑÑÑваÑа може викликаÑи безлÑÑ Ð¿Ð¾Ð´Ñй.
ÐапÑиклад, клÑк лÑÐ²Ð¾Ñ ÐºÐ½Ð¾Ð¿ÐºÐ¾Ñ ÑпоÑаÑÐºÑ ÑнÑÑÑÑÑ mousedown, коли ÐºÐ½Ð¾Ð¿ÐºÑ Ð½Ð°ÑиÑнÑÑо, поÑÑм mouseup Ñ click, коли ÑÑ Ð²ÑдпÑÑкаÑÑÑ.
У випадкаÑ
, коли одна дÑÑ ÑнÑÑÑÑÑ Ð´ÐµÐºÑлÑка подÑй, ÑÑ
поÑÑдок ÑÑкÑÑÑÑÑÑÑ. ТобÑо обÑобники викликаÑÑÑÑÑ Ð² поÑÑÐ´ÐºÑ mousedown â mouseup â click.
ÐлÑкнÑÑÑ ÐºÐ½Ð¾Ð¿ÐºÑ Ð½Ð¸Ð¶Ñе, Ñ Ð²Ð¸ побаÑиÑе подÑÑ. СпÑобÑйÑе Ñакож клÑкнÑÑи двÑÑÑ.
ÐÑÑ Ð¿Ð¾Ð´ÑÑ Ð¼Ð¸ÑÑ ÑеÑÑÑÑÑÑÑÑÑÑ Ñ ÑеÑÑÐ¾Ð²Ð¾Ð¼Ñ Ð²ÑÐºÐ½Ñ Ð½Ð¸Ð¶Ñе, Ñ ÑкÑо мÑж ними Ñ Ð·Ð°ÑÑимка бÑлÑÑе 1 ÑекÑнди, вони ÑоздÑлÑÑÑÑÑÑ Ð³Ð¾ÑизонÑалÑÐ½Ð¾Ñ Ð»ÑнÑÑÑ.
Також ми можемо побаÑиÑи влаÑÑивÑÑÑÑ button, Ñка дозволÑÑ Ð²Ð¸ÑвиÑи ÑÐºÑ Ñаме ÐºÐ½Ð¾Ð¿ÐºÑ Ð¼Ð¸ÑÑ ÐºÐ»ÑкнÑли, Ñе поÑÑнÑÑÑÑÑÑ Ð½Ð¸Ð¶Ñе.
Ðнопка миÑÑ
ÐодÑÑ, повâÑÐ·Ð°Ð½Ñ Ð· клÑками, завжди маÑÑÑ Ð²Ð»Ð°ÑÑивÑÑÑÑ button, Ñо дозволÑÑ Ð¾ÑÑимаÑи ÑоÑÐ½Ñ ÐºÐ½Ð¾Ð¿ÐºÑ Ð¼Ð¸ÑÑ.
ÐазвиÑай ми не викоÑиÑÑовÑÑмо ÑÑ Ð´Ð»Ñ Ð¿Ð¾Ð´Ñй click Ñ contextmenu, оÑкÑлÑки пеÑÑе вÑдбÑваÑÑÑÑÑ Ð»Ð¸Ñе пÑи наÑиÑÐºÐ°Ð½Ð½Ñ Ð»ÑÐ²Ð¾Ñ ÐºÐ½Ð¾Ð¿ÐºÐ¾Ñ Ð¼Ð¸ÑÑ, а оÑÑÐ°Ð½Ð½Ñ â лиÑе пÑи наÑиÑÐºÐ°Ð½Ð½Ñ Ð¿ÑÐ°Ð²Ð¾Ñ ÐºÐ½Ð¾Ð¿ÐºÐ¾Ñ Ð¼Ð¸ÑÑ.
Ð ÑнÑого бокÑ, обÑобникам mousedown Ñа mouseup може знадобиÑиÑÑ event.button, ÑÐ¾Ð¼Ñ Ñо ÑÑ Ð¿Ð¾Ð´ÑÑ Ð·Ð°Ð¿ÑÑкаÑÑÑÑÑ Ð½Ð° бÑдÑ-ÑкÑй кнопÑÑ, ÑÐ¾Ð¼Ñ button дозволÑÑ ÑозÑÑзнÑÑи âпÑÐ°Ð²Ñ ÐºÐ½Ð¾Ð¿ÐºÑ Ð¼Ð¸ÑÑâ Ñа âлÑÐ²Ñ ÐºÐ½Ð¾Ð¿ÐºÑ Ð¼Ð¸ÑÑâ.
ÐÐ¾Ð¶Ð»Ð¸Ð²Ñ Ð·Ð½Ð°ÑÐµÐ½Ð½Ñ event.button:
| СÑан кнопки | event.button |
|---|---|
| ÐÑва кнопка (оÑновна) | 0 |
| СеÑÐµÐ´Ð½Ñ ÐºÐ½Ð¾Ð¿ÐºÐ° (допомÑжна) | 1 |
| ÐÑава кнопка (дÑÑгоÑÑдна) | 2 |
| Ðнопка X1 (назад) | 3 |
| Ðнопка X2 (впеÑед) | 4 |
ÐÑлÑÑÑÑÑÑ Ð¿ÑиÑÑÑоÑв маÑÑÑ Ð»Ð¸Ñе лÑÐ²Ñ Ñа пÑÐ°Ð²Ñ ÐºÐ½Ð¾Ð¿ÐºÐ¸, ÑÐ¾Ð¼Ñ Ð¼Ð¾Ð¶Ð»Ð¸Ð²Ñ Ð·Ð½Ð°ÑÐµÐ½Ð½Ñ 0 або 2. СенÑоÑÐ½Ñ Ð¿ÑиÑÑÑÐ¾Ñ Ñакож генеÑÑÑÑÑ Ð¿Ð¾Ð´ÑÐ±Ð½Ñ Ð¿Ð¾Ð´ÑÑ, коли на ниÑ
наÑиÑкаÑÑÑ.
Також Ñ Ð²Ð»Ð°ÑÑивÑÑÑÑ event.buttons, Ñка мÑÑÑиÑÑ ÑÑÑ Ð½Ð°ÑиÑнÑÑÑ ÐºÐ½Ð¾Ð¿ÐºÐ¸ Ñк ÑÑле ÑиÑло, по Ð¾Ð´Ð½Ð¾Ð¼Ñ Ð±ÑÑÑ Ð½Ð° кнопкÑ. Ðа пÑакÑиÑÑ ÑÑ Ð²Ð»Ð°ÑÑивÑÑÑÑ Ð²Ð¸ÐºÐ¾ÑиÑÑовÑÑÑÑÑÑ Ð´Ñже ÑÑдко, деÑÐ°Ð»Ñ Ð¼Ð¾Ð¶Ð½Ð° знайÑи на ÑÑоÑÑнÑÑ MDN, ÑкÑо вона вам колиÑÑ Ð·Ð½Ð°Ð´Ð¾Ð±Ð¸ÑÑÑÑ.
event.whichСÑаÑий код може викоÑиÑÑовÑваÑи влаÑÑивÑÑÑÑ event.which, Ñо Ñ Ð·Ð°ÑÑаÑÑлим неÑÑандаÑÑним ÑпоÑобом оÑÑÐ¸Ð¼Ð°Ð½Ð½Ñ ÐºÐ½Ð¾Ð¿ÐºÐ¸ з можливими знаÑеннÑми:
event.which == 1â лÑва кнопка,event.which == 2â ÑеÑÐµÐ´Ð½Ñ ÐºÐ½Ð¾Ð¿ÐºÐ°,event.which == 3â пÑава кнопка.
Ðа даний Ð¼Ð¾Ð¼ÐµÐ½Ñ Ð²Ð»Ð°ÑÑивÑÑÑÑ event.which заÑÑаÑÑла, ми не Ð¿Ð¾Ð²Ð¸Ð½Ð½Ñ ÑÑ Ð²Ð¸ÐºÐ¾ÑиÑÑовÑваÑи.
ÐодиÑÑкаÑоÑи: shift, alt, ctrl Ñ meta
УÑÑ Ð¿Ð¾Ð´ÑÑ Ð¼Ð¸ÑÑ Ð¼ÑÑÑÑÑÑ ÑнÑоÑмаÑÑÑ Ð¿Ñо наÑиÑнÑÑÑ ÐºÐ»Ð°Ð²ÑÑÑ-модиÑÑкаÑоÑи.
ÐлаÑÑивоÑÑÑ Ð¿Ð¾Ð´ÑÑ:
shiftKey: ShiftaltKey: Alt (Ñи Opt Ð´Ð»Ñ Mac)ctrlKey: CtrlmetaKey: Cmd Ð´Ð»Ñ Mac
Ðони маÑÑÑ Ð·Ð½Ð°ÑÐµÐ½Ð½Ñ true, ÑкÑо вÑдповÑдна клавÑÑа бÑла наÑиÑнÑÑа пÑд ÑÐ°Ñ Ð¿Ð¾Ð´ÑÑ.
ÐапÑиклад, кнопка нижÑе пÑаÑÑÑ Ð»Ð¸Ñе на Alt+Shift + клÑк:
<button id="button">Alt+Shift+ÐлÑкни мене!</button>
<script>
button.onclick = function(event) {
if (event.altKey && event.shiftKey) {
alert('УÑа!');
}
};
</script>
Cmd замÑÑÑÑ CtrlÐа Windows Ñ Linux Ñ ÐºÐ»Ð°Ð²ÑÑÑ-модиÑÑкаÑоÑи Alt, Shift Ñ Ctrl. Ðа Mac Ñ Ñе одна: Cmd, Ñо вÑдповÑÐ´Ð°Ñ Ð²Ð»Ð°ÑÑивоÑÑÑ metaKey.
У бÑлÑÑоÑÑÑ Ð·Ð°ÑÑоÑÑнкÑв, коли Windows/Linux викоÑиÑÑовÑÑ Ctrl, на Mac викоÑиÑÑовÑÑÑÑÑÑ Command.
ТобÑо: коли коÑиÑÑÑÐ²Ð°Ñ Windows наÑиÑÐºÐ°Ñ Ctrl+Enter або Ctrl+A, коÑиÑÑÑÐ²Ð°Ñ Mac наÑиÑÐºÐ°Ñ Cmd+Enter або Cmd+A, Ñ Ñак далÑ.
ÐÑже, ÑкÑо ми Ñ Ð¾Ñемо пÑдÑÑимÑваÑи ÑÐ°ÐºÑ ÐºÐ¾Ð¼Ð±ÑнаÑÑÑ, Ñк Ctrl+ клÑк, Ñо Ð´Ð»Ñ Mac Ð¼Ð°Ñ ÑÐµÐ½Ñ Ð²Ð¸ÐºÐ¾ÑиÑÑовÑваÑи Cmd+ клÑк. Це зÑÑÑнÑÑе Ð´Ð»Ñ ÐºÐ¾ÑиÑÑÑваÑÑв Mac.
ÐавÑÑÑ ÑкÑо ми б Ñ
оÑÑли змÑÑиÑи коÑиÑÑÑваÑÑв Mac заÑÑоÑÑваÑи Ctrl+клÑк â Ñе ÑÑоÑ
и Ñкладно. ÐÑоблема полÑÐ³Ð°Ñ Ð² ÑомÑ, Ñо клÑк лÑÐ²Ð¾Ñ ÐºÐ½Ð¾Ð¿ÐºÐ¾Ñ Ð¼Ð¸ÑÑ Ð·Ð° Ð´Ð¾Ð¿Ð¾Ð¼Ð¾Ð³Ð¾Ñ Ctrl ÑнÑеÑпÑеÑÑÑÑÑÑÑ Ñк клÑк пÑÐ°Ð²Ð¾Ñ ÐºÐ½Ð¾Ð¿ÐºÐ¾Ñ Ð¼Ð¸ÑÑ Ñ MacOS, Ñ Ð²Ñн генеÑÑÑ Ð¿Ð¾Ð´ÑÑ contextmenu, а не click, Ñк Windows/Linux.
Тож ÑкÑо ми Ñ
оÑемо, Ñоб коÑиÑÑÑваÑÑ Ð²ÑÑÑ
опеÑаÑÑйниÑ
ÑиÑÑем вÑдÑÑвали Ñебе комÑоÑÑно, Ñо Ñазом Ñз ctrlKey ми Ð¿Ð¾Ð²Ð¸Ð½Ð½Ñ Ð¿ÐµÑевÑÑиÑи metaKey.
ÐÐ»Ñ JS-ÐºÐ¾Ð´Ñ Ñе ознаÑаÑ, Ñо ми Ð¿Ð¾Ð²Ð¸Ð½Ð½Ñ Ð¿ÐµÑевÑÑиÑи if (event.ctrlKey || event.metaKey).
ÐомбÑнаÑÑÑ ÐºÐ»Ð°Ð²ÑаÑÑÑи Ñ Ð¾ÑоÑÑ Ñк Ð´Ð¾Ð¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ Ð´Ð¾ ÑобоÑого пÑоÑеÑÑ. Так Ñо ÑкÑо вÑдвÑдÑÐ²Ð°Ñ Ð²Ð¸ÐºÐ¾ÑиÑÑовÑÑ ÐºÐ»Ð°Ð²ÑаÑÑÑÑ â вони пÑаÑÑÑÑÑ.
Ðле ÑкÑо в ÑÑ Ð½ÑÐ¾Ð¼Ñ Ð¿ÑиÑÑÑÐ¾Ñ ÑÑого Ð½ÐµÐ¼Ð°Ñ â Ñо Ð¼Ð°Ñ Ð±ÑÑи ÑпоÑÑб жиÑи без клавÑÑ-модиÑÑкаÑоÑÑв.
ÐооÑдинаÑи: clientX/Y, pageX/Y
УÑÑ Ð¿Ð¾Ð´ÑÑ Ð¼Ð¸ÑÑ Ð½Ð°Ð´Ð°ÑÑÑ ÐºÐ¾Ð¾ÑдинаÑи Ñ Ð´Ð²Ð¾Ñ Ð²Ð°ÑÑанÑÐ°Ñ :
- ÐÑдноÑно Window:
clientXÑаclientY. - ÐÑдноÑно Document:
pageXÑаpageY.
Ðи вже ÑозглÑнÑли ÑÑзниÑÑ Ð¼Ñж ними Ñ ÑоздÑÐ»Ñ ÐооÑдинаÑи.
ÐоÑоÑÑе кажÑÑи, вÑдноÑÐ½Ñ Ð´Ð¾ докÑменÑа кооÑдинаÑи pageX/Y вÑдÑаÑ
овÑÑÑÑÑÑ Ð²Ñд лÑвого веÑÑ
нÑого кÑÑа докÑменÑа Ñ Ð½Ðµ змÑнÑÑÑÑÑÑ Ð¿Ñд ÑÐ°Ñ Ð¿ÑокÑÑÑÑÐ²Ð°Ð½Ð½Ñ ÑÑоÑÑнки, ÑÐ¾Ð´Ñ Ñк clientX/Y вÑдÑаÑ
овÑÑÑÑÑÑ Ð²Ñд лÑвого веÑÑ
нÑого кÑÑа поÑоÑного вÑкна. Ðоли ÑÑоÑÑнка пÑокÑÑÑÑÑÑÑÑÑ, вони змÑнÑÑÑÑÑÑ.
ÐапÑиклад, ÑкÑо Ñ Ð½Ð°Ñ Ñ Ð²Ñкно ÑозмÑÑом 500x500, а миÑа знаÑ
одиÑÑÑÑ Ð² лÑÐ²Ð¾Ð¼Ñ Ð²ÐµÑÑ
нÑÐ¾Ð¼Ñ ÐºÑÑÑ, Ñо clientX Ñ clientY доÑÑвнÑÑÑÑ 0, незалежно вÑд Ñого, Ñк пÑокÑÑÑÑÑÑÑÑÑ ÑÑоÑÑнка.
Ð ÑкÑо миÑа знаÑ
одиÑÑÑÑ Ð² ÑенÑÑÑ, Ñо clientX Ñ clientY доÑÑвнÑÑÑÑ 250, незалежно вÑд Ñого, Ñке мÑÑÑе в докÑменÑÑ Ñе. У ÑÑÐ¾Ð¼Ñ Ð°ÑпекÑÑ Ð²Ð¾Ð½Ð¸ ÑÑ
Ð¾Ð¶Ñ Ð½Ð° position:fixed.
ÐаведÑÑÑ ÐºÑÑÑÐ¾Ñ Ð¼Ð¸ÑÑ Ð½Ð° поле введеннÑ, Ñоб побаÑиÑи clientX/clientY (пÑиклад знаÑ
одиÑÑÑÑ Ð² iframe, ÑÐ¾Ð¼Ñ ÐºÐ¾Ð¾ÑдинаÑи Ñ Ð²ÑдноÑно ÑÑого iframe):
<input onmousemove="this.value=event.clientX+':'+event.clientY" value="ÐаведÑÑÑ ÐºÑÑÑÐ¾Ñ Ð½Ð° мене">
ÐапобÑÐ³Ð°Ð½Ð½Ñ Ð²Ð¸Ð´ÑÐ»ÐµÐ½Ð½Ñ Ð¿Ñи Ð½Ð°Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð¼Ð¸ÑÑ
ÐодвÑйний клÑк миÑÑ Ð¼Ð°Ñ Ð¿Ð¾Ð±ÑÑний еÑекÑ, Ñкий може ÑÑвоÑÑваÑи незÑÑÑноÑÑÑ Ð² деÑÐºÐ¸Ñ ÑнÑеÑÑейÑÐ°Ñ : вÑн видÑлÑÑ ÑекÑÑ.
ÐапÑиклад, подвÑйний клÑк на ÑекÑÑÑ Ð½Ð¸Ð¶Ñе видÑлÑÑ Ð¹Ð¾Ð³Ð¾ на додаÑок до наÑого обÑобника:
<span ondblclick="alert('dblclick')">ÐлÑкни мене двÑÑÑ</span>
ЯкÑо наÑиÑнÑÑи лÑÐ²Ñ ÐºÐ½Ð¾Ð¿ÐºÑ Ð¼Ð¸ÑÑ Ñ, не вÑдпÑÑкаÑÑи ÑÑ, пеÑеÑÑнÑÑи, Ñе Ñакож додаÑÑÑ Ð²Ð¸Ð´ÑленнÑ, ÑаÑÑо небажане.
ÐÑнÑÑ ÐºÑлÑка ÑпоÑобÑв запобÑгÑи видÑленнÑ, пÑо ÑÐºÑ Ð²Ð¸ можеÑе пÑоÑиÑаÑи в ÑоздÑÐ»Ñ Selection Ñ Range.
У ÑÑÐ¾Ð¼Ñ ÐºÐ¾Ð½ÐºÑеÑÐ½Ð¾Ð¼Ñ Ð²Ð¸Ð¿Ð°Ð´ÐºÑ Ð½Ð°Ð¹ÑозÑмнÑÑим ÑпоÑобом Ñ Ð·Ð°Ð¿Ð¾Ð±ÑÐ³Ð°Ð½Ð½Ñ Ð´ÑÑ Ð±ÑаÑзеÑа на mousedown. Таким Ñином ми запобÑгнемо двом видÑленнÑм:
Ðо...
<b ondblclick="alert('ÐлÑк!')" onmousedown="return false">
ÐлÑкни мене двÑÑÑ
</b>
...ÐÑÑлÑ
Ð¢ÐµÐ¿ÐµÑ Ð²Ð¸Ð´Ñлений жиÑним ÐµÐ»ÐµÐ¼ÐµÐ½Ñ Ð½Ðµ видÑлÑÑÑÑÑÑ Ð¿Ð¾Ð´Ð²Ñйними клÑком, Ñ Ð½Ð°ÑиÑÐºÐ°Ð½Ð½Ñ Ð½Ð° нÑÐ¾Ð¼Ñ Ð»ÑÐ²Ð¾Ñ ÐºÐ½Ð¾Ð¿ÐºÐ¸ не поÑне видÑленнÑ.
ÐвеÑнÑÑÑ ÑвагÑ: ÑекÑÑ Ð²ÑеÑÐµÐ´Ð¸Ð½Ñ Ð½Ñого вÑе Ñе можна видÑлиÑи. Ðднак видÑÐ»ÐµÐ½Ð½Ñ ÑлÑд поÑинаÑи не з Ñамого ÑекÑÑÑ, а до або пÑÑÐ»Ñ Ð½Ñого. ÐазвиÑай, Ñе ноÑмалÑно ÑпÑиймаÑÑÑÑÑ ÐºÐ¾ÑиÑÑÑваÑами.
ЯкÑо ми Ñ
оÑемо вимкнÑÑи видÑленнÑ, Ñоб заÑ
иÑÑиÑи вмÑÑÑ Ð½Ð°ÑÐ¾Ñ ÑÑоÑÑнки вÑд копÑÑваннÑ, ми можемо викоÑиÑÑовÑваÑи ÑнÑÑ Ð¿Ð¾Ð´ÑÑ: oncopy.
<div oncopy="alert('ÐопÑÑÐ²Ð°Ð½Ð½Ñ Ð·Ð°Ð±Ð¾Ñонено!');return false">
Шановний коÑиÑÑÑваÑ,
ÐопÑÑÐ²Ð°Ð½Ð½Ñ Ð·Ð°Ð±Ð¾Ñонено.
ЯкÑо ви знаÑÑе JS або HTML, ви можеÑе оÑÑимаÑи вÑе з джеÑела ÑÑоÑÑнки.
</div>
ЯкÑо ви ÑпÑобÑÑÑе ÑкопÑÑваÑи ÑÑÐ°Ð³Ð¼ÐµÐ½Ñ ÑекÑÑÑ Ð² <div>, Ñе не ÑпÑаÑÑÑ, оÑкÑлÑки ÑÐ¸Ð¿Ð¾Ð²Ñ Ð´ÑÑ oncopy забоÑонено.
ÐезÑмовно, коÑиÑÑÑÐ²Ð°Ñ Ð¼Ð°Ñ Ð´Ð¾ÑÑÑп до HTML-джеÑела ÑÑоÑÑнки, Ñ Ð¼Ð¾Ð¶Ðµ взÑÑи звÑдÑи вмÑÑÑ, але не вÑÑ Ð·Ð½Ð°ÑÑÑ, Ñк Ñе зÑобиÑи.
ÐÑдÑÑмки
ÐодÑÑ Ð¼Ð¸ÑÑ Ð¼Ð°ÑÑÑ ÑÐ°ÐºÑ Ð²Ð»Ð°ÑÑивоÑÑÑ:
-
Ðнопка:
button. -
ÐлавÑÑÑ-модиÑÑкаÑоÑи (
true, ÑкÑо ÑÑ Ð½Ð°ÑиÑнÑÑи):altKey,ctrlKey,shiftKeyÑmetaKey(Mac).- ЯкÑо ви Ñ
оÑеÑе пÑаÑÑваÑи з Ctrl, Ñо не забÑвайÑе пÑо коÑиÑÑÑваÑÑв Mac, вони зазвиÑай викоÑиÑÑовÑÑÑÑ Cmd, ÑÐ¾Ð¼Ñ ÐºÑаÑе пеÑевÑÑиÑи
if (e.metaKey || e.ctrlKey).
- ЯкÑо ви Ñ
оÑеÑе пÑаÑÑваÑи з Ctrl, Ñо не забÑвайÑе пÑо коÑиÑÑÑваÑÑв Mac, вони зазвиÑай викоÑиÑÑовÑÑÑÑ Cmd, ÑÐ¾Ð¼Ñ ÐºÑаÑе пеÑевÑÑиÑи
-
ÐооÑдинаÑи вÑдноÑно Window:
clientX/clientY. -
ÐооÑдинаÑи вÑдноÑно Document:
pageX/pageY.
Типова дÑÑ Ð±ÑаÑзеÑа mousedown â видÑÐ»ÐµÐ½Ð½Ñ ÑекÑÑÑ, ÑкÑо в ÑнÑеÑÑейÑÑ Ð²Ð¾Ð½Ð¾ ÑвидÑе заважаÑ, Ð¹Ð¾Ð¼Ñ ÑлÑд запобÑгÑи.
У наÑÑÑÐ¿Ð½Ð¾Ð¼Ñ ÑоздÑÐ»Ñ Ð¼Ð¸ дÑзнаÑмоÑÑ Ð±ÑлÑÑе деÑалей пÑо подÑÑ, ÑÐºÑ ÑлÑдÑÑÑÑ Ð·Ð° ÑÑÑ Ð¾Ð¼ кÑÑÑоÑа, Ñ Ð¿Ñо Ñе, Ñк вÑдÑÑежÑваÑи змÑни елеменÑÑв пÑд ним.
ÐоменÑаÑÑ
<code>, Ð´Ð»Ñ ÐºÑлÑÐºÐ¾Ñ ÑÑдкÑв â обгоÑнÑÑÑ ÑÑ Ñегом<pre>, Ð´Ð»Ñ Ð¿Ð¾Ð½Ð°Ð´ 10 ÑÑдкÑв â викоÑиÑÑовÑйÑе пÑÑоÑниÑÑ (plnkr, jsbin, codepenâ¦)