鼠标事件(移动端这些事件没有用)

1 click 鼠标点击事件 click = mousedown + mouseup
如果三个事件同时出现 不管写时的顺序先后 触发的顺序为mousedown mouseup click
2 mousedown、mousemove、mouseup
mousedown 鼠标按下时触发事件
mousemove 鼠标在指定元素中移动时触发事件
mouseup 鼠标松开时触发事件
3 contextmenu 右键菜单事件
4 mouseover、mouseout
mouseover 鼠标进入元素区域时触发事件
mouseout 鼠标离开元素区域时触发事件
5 与4相对应的HTML5的新规范 mouseenter对应mouseover、mouseleave对应mouseout

可以通过事件中的button属性来区分鼠标的按键
e.button = 0 表示左键 e.button = 2 表示右键 e.button = 1 表示鼠标滚动轮
DOM3标准规定 click事件只能监听左键 能区分(触发)鼠标左右键的只有 mousedown 和 mouseup

如何解决mousedown和click的冲突
可以设置监听的时间 如果鼠标按下时间小于规定的某个值时 为click
如果鼠标按下时间大于规定的某个值时 为mousedown

  1. <script>
  2. var firstTime = 0,
  3. lastTime = 0,
  4. key = false;
  5. document.onmousedown = function(e){
  6. firstTime = new Date().getTime();
  7. }
  8. document.onmouseup = function(e){
  9. lastTime = new Date().getTime();
  10. //规定按下时间小于300毫秒时触发鼠标点击时间
  11. if(lastTime - firstTime <300){
  12. key = true;
  13. }
  14. }
  15. document.onclick = function(e){
  16. if(key){
  17. console.log("click");
  18. key = false;
  19. }
  20. }
  21. </script>

键盘事件

keydown keyup keypress
触发次序 keydown > keypress > keyup
keydown和keypress的区别
可以通过键盘事件的属性进行区分 键盘事件的which的值对应键盘上的108个按键所编排的值
keydown 可以响应任意键盘按键(Fn除外)其charCode属性恒为0
无法监测字符大小写的切换 如大写A应为65 小写a应为97 但是它的charCode属性恒为0
keypress 只可以响应字符类键盘按键(ASCII码表有的)其charCode属性值为对应字符转换为ASCII码表对应的数字
可以监测字符大小写的切换 如大写A应为65 小写a应为97 它的charCode属性就显示对应的值

文本操作事件

这些方法都是对应 标签的
1 input 只要文本框里的内容发生变化都会触发事件
2 change 若鼠标聚焦和失去焦点时文本框中的内容不一致 则触发事件
3 focus blur
提示:这两个方法通常一起使用
当元素获得焦点时(当通过鼠标点击选中元素或通过 tab 键定位到元素时) 发生 focus 事件
当元素失去焦点时发生 blur 事件**

窗体操作类(window上的事件)

scroll 滚动条滚动时事件触发
load 当图像全部加载完毕就等待用户交互体验时 就会触发load 事件
不常用 效率低 一般用来放广告
小练习:fixed定位 js兼容版