001 学习目标 第一期

1) 

一 、元素注册事件的两种方式

 添加事件两种方法:传统方法监听注册方法

1、传统  btn.onclick = function() {

}  注册事件具有唯一性 ,一个元素智能处理一个函数 也就是最后一个会覆盖前面的。

2 方法监听注册方式 : addEventListener

eventTarfet.addEventListneer(type, listener[, useCapture])

type :事件类型字符串 click mouseover 不带on

listener :时间处理函数,事件发生就调用

useCapture:可选参数 ,布尔值 默认false。

同一元素 同一事件 可以条件多个监听器 (事件处理函数)

二.删除事件的两种方式(解绑时间)

1、传统方式 :Element.onclick = null ;

2、事件监听方式 :eventTarget.removeEventListener(type,listener[, useCapture]);

三、DOM事件流

页面接收事件的顺序叫做事件流。

1、捕获阶段

2、当前目标阶段

3、冒泡阶段(没有冒泡事件 onblur 、 onfocus、 onmouseover、 onmouseleave)

JS代码中智能执行捕获或者冒泡其中的一个阶段。

四、事件对象

div.onclick = function (event) {

} //这个知识点没啥玩意儿   IE678不兼容  通过windows。event

阻止对象默认行为

a.onclick = function() {

e.preventDefault(); // 三种方法

e.returnValuye; //低版本浏览器 IE678

returen false; //后面有代码便不再执行 ,限于传统注册方式

五、阻止冒泡事件

 事件冒泡:开始后由最具体的元素接收,然后逐级向上传播

e.stopPropagation();

例如 ,点击下面的son对象 则会弹出三个对话框,因为document>father>son 会从son往上冒泡,可是我们并不想

var  son = document.querySelector('.son')
    son.addEventListener('click',function(e)) {
    alert ('son');
},false);
var  father= document.querySelector('.father')
    father.addEventListener('click',function(e)) {
    alert ('father');
},false);

    document.addEventListener('click',function(e)) {
    alert ('document');
},false);

  因此就要在son和father 里加上,e.stopPropagation();

 

var  son = document.querySelector('.son')
    son.addEventListener('click',function(e)) {
    alert ('son');
    e.stopPropagation(); //阻值继续冒泡
},false);
var  father= document.querySelector('.father')
    father.addEventListener('click',function(e)) {
    alert ('father');
    e.stopPropagation(); //阻值继续冒泡
},false);

    document.addEventListener('click',function(e)) {
    alert ('document');
},false);

六、事件委托(代理、委派) 

例子,利用事件冒泡,在ul中设置事件监听器,这样只要点击里面的li就会触发事件,不需要给每个li添加 事件监听,节约了DOM交互事件

七、常用鼠标和键盘事件

1、禁用鼠标右键菜单

 document.addEventListener('contextmenu',function(e) {

e.preventDefault();

})

2、禁止鼠标选中(selectstrat)

document.addEventListener('selectstart',function(e) {

e.prevebtDefault();

})

指尖跟随天使 

 

<style>
 img {
position:absolute;
 top :2px;
}    
</style>
<body>
    <img src= ""  alt= "" >
    <script>
        var pic = document.querySelector('img');
        document.addEventListener('mousemove' ,function(e) {
            var x = e.pageX;
            var y = e.pageY;
            console.log ('x的坐标是'+x,'y的坐标是'+y);
            pic.style.left = x+'px'; //千万不能忘了加px 的单位
            pic.style.right = y+'px';
    })
    </script>    
</body>

 键盘事件:

onkeyup

onkeydown

onkeypress //不能识别 Ctrl  shift 箭头等功能键  其他的和上面一个同   区分大小写对应不同的码 ,而上面两个不

键盘ASCII码对用表  参看: https://www.runoob.com/note/29592

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值