JavaScript实现按键精灵的原理分析(2)

该操作并不会改变真实鼠标的位置。

 
clientX/clientY   可选   0   long长整型  

鼠标事件时相对于浏览器窗口viewport的水平/垂直坐标位置,不包含滚动距离;

该操作并不会改变真实鼠标的位置。

 
ctrlKey   可选   false   Boolean   按下了Ctrl键  
shiftKey   可选   false   Boolean   按下了Shift键  
altKey   可选   false   Boolean   按下了Alt键  
metaKey   可选   false   Boolean   按下了Meta键 
 
button   可选   0   short短整型  

当事件发生时哪个按键被按下或释放;

0:左键 1:中建 2:右键

 
buttons   可选   0   无符号short  

当事件发生时哪些按键被按下;

0:无按键按下 1:左键 2:中建 4:右键

 
relatedTarget   可选   null   EventTarget  

标明刚离开的元素 (发生在事件 mouseenter 或 mouseover);

或刚进入的元素 (发生在事件 mouseout 或 mouseleave)。

 
region   可选   null   DOMString   点击事件影响的区域DOM的id  

二、触屏事件TouchEvent

TouchEvent是一类描述手指在触摸平面(触摸屏、触摸板等)的状态变化的事件。

每个Touch对象代表一个触点; 每个触点都由其位置,大小,形状,压力大小,和目标元素描述。TouchList对象代表多个触点的一个列表。

触屏touch事件的更多细节,可以参加《触屏touch事件记录》

on(document.body, 'touchstart', function(e) { var touch = e.touches.item(0); console.log('touchstart x:' + touch.clientX, 'y:' + touch.clientY); }); on(document.body, 'touchmove', function(e) { var touch = e.touches.item(0); console.log('touchmove x:' + touch.clientX, 'y:' + touch.clientY); }); on(document.body, 'touchend', function(e) { var touch = e.changedTouches.item(0); console.log('touchend x:' + touch.clientX, 'y:' + touch.clientY); }); on(window, 'scroll', function(e) { console.log('scroll timestamp:' + e.timeStamp); }); /** * TouchEvent * 包括事件 touchstart,touchend,touchmove,touchcancel */ function touchstart(x, y, number) { var touch = new Touch({ identifier: number, target: document.querySelector('.drag'), //随便设置的 clientX: x, clientY: y }); console.log('touchstart环境 x:' + x, 'y:' + y); var event = new TouchEvent('touchstart', { touches: [touch], targetTouches: [touch], changedTouches: [touch] }); document.body.dispatchEvent(event); //touchstart } function touchmove(x, y, interval, number) { var touch = new Touch({ identifier: number, target: document.querySelector('.drag'), //随便设置的 clientX: x, clientY: y + interval }); var event = new TouchEvent('touchmove', { touches: [touch], targetTouches: [touch], changedTouches: [touch] }); document.body.dispatchEvent(event); //touchmove } function touch() { var x = random(window.outerWidth), y = random(window.outerHeight), number = 1, interval = 10; touchstart(x, y, number); number++; touchmove(x, y, interval, number); number++; interval += 10; touchmove(x, y, interval, number); number++; interval += 10; touchmove(x, y, interval, number); document.body.scrollTop = interval; //自动滚动 } setTimeout(function() { touch(); }, 2000);

1)Touch

语法如下:

touchInit:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wwzsww.html