JS基础

91 阅读2分钟
  1.  获取鼠标点击的位置(相对于显示区域的位置)
     // e.clientX  X轴
     // e.clientY  Y轴
     
     keydown //键盘按下
     keyup //键盘抬起
     
     // 如果鼠标移入或者移出 子元素 范围 
     // mouseover 和 mouseout  会触发~
     // mouseenter 和 mouseleave 不受 子级元素范围干扰
     
     // 获取鼠标点击的位置(相对于页面左上角位置)
     // e.pageX X轴
     // e.pageY Y轴
     
     // 将事件添加到父级身上  - 事件委托
     e.target.parentNode
     e.target.tagName=='LI'
     
     // 获取事件源 元素
     // console.log(e.target);
     
     // js当中有一个特性: 事件会冒泡
     //  DOM树 
     // html > body > div > p 
     // p标签 包含在 div/body/html
     // 执行子元素事件同时,父元素如有同样事件,也会执行
     // 事件冒泡的执行顺序  : 由小到大  p > div > body > html 
     
     // addEventListener('ev',fn,[Boolean,{}])  默认冒泡执行的
     // 默认第三个参数是 false (不捕获)
     // 第三个参数:如果是布尔值:true 是进行捕获执行, false 不捕获
     document.body.addEventListener('click',function(){
         alert('body');
     },true);
     // 事件捕获: 由大到小  html > body > div > p 
     
     // 第三个参数 还可以 传递对象:{}
     // capture:true/false 是否在捕获阶段执行
     // once:true/false 只执行一次事件
     div.addEventListener('click',function(){
         alert('div');
     },{
         once:true
     });
     // passive:false/true //阻止取消默认事件
     a.addEventListener('click',function(e){
         alert('a');
         // 阻止浏览器默认行为
         e.preventDefault();
     },{
         // 阻止取消默认事件 true(不允许阻止) 、 false (允许阻止)
         passive:false
     });
     
     表单方法:
     focus //获取焦点时
     change //内容改变时
     input //当内容修改时
     submit //提交事件
     reset //重置事件
     keydown // 键盘按下快门时候
     keyCode //获取按键
     
     键盘事件
     e.keyCode // keyCode 键码
     e.key // e.key 键值
     e.ctrlKey //是否按下Ctrl键
     e.altKey  //是否按下alt键
     e.shiftKey //是否按下shift键
     
     
     默认行为
     // 阻止浏览器默认行为!
     e.preventDefault();
     return false
     在事件绑定中 return false 无法实现取消默认行为功能
     //只能在直接添加事件的写法下使用
     document.oncontextmenu=function(e){
     	...
     	return false;
     }
     
     双击事件
     dblclick
     
     鼠标右键
     contextmenu 
     
     鼠标滚轮事件
     // 谷歌和ie
     mousewheel 
     // e.wheelDelta
     // 滚轮向上 - > 120
     // 滚轮向下 - >  -120
     // firefox
     DOMMouseScroll
     // e.detail
     // 滚轮向上  ->  -3
     // 滚轮向下  ->  3
     
     鼠标跟随:
     mousemove
     e.clientX //可是区域宽度
     e.pageX //页面宽度
     
     // 元素本身有事件,不想执行父级身上的事件
     // 取消事件冒泡
     
      p.addEventListener('click',function(e){
         // 取消事件冒泡
         // ie支持 
         e.cancelBubble = true;
         alert('p')
     })
     
     p.addEventListener('click',function(e){
         // 取消事件冒泡
         e.stopPropagation()
         alert('p')
     })
     
     div.addEventListener('click',function(){
         alert('div');
     },{
         once:true
     });
     
     浏览器可视区宽度 - 自身宽度
     document.documentElement.clientWidth - div.offsetWidth;