事件

1、鼠标的移入移除
js部分

//onmouseover、onmouseout子集到父级和父级到子集都活触发
        yellow.onmouseover = function(){ }
        yellow.onmouseout = function(){ }
//鼠标进去 onmouseenter.onmouseleave只在当前目标元素触发一次
        yellow.onmouseenter = function(){ }
        yellow.onmouseleave = function(){}

2、鼠标事件
js部分

//鼠标单击 onclick
        div1.onclick = function(){}
// 鼠标双击   ondblclick
         div1.ondblclick = function(){ }
// 鼠标按下 onmousedown
        div1.onmousedown = function(){ }
// 鼠标抬起onmouseup
         div1.onmouseup = function(){}
// 右击鼠标oncontextmenu
         div1.oncontextmenu = function(){}
// 鼠标移动 onmousemove
         div1.onmousemove = function(){}

3、事件对象
js部分

我们可以通过事件对象来拿到鼠标事件、 键盘事件所携带信
息。获取事件对象可以 直接通过 window.event 拿到这个对
象,但是由于火狐浏览器并不支持这个方法,所以 我们一般需
要在触发事件的函数中传入 event 参数,以适配火狐
// 为什么加window 为了兼容浏览器更早的版本
       document.onmouseup = function(e){
        var ev = e||window.event;
}

4、键盘事件
js部分

 onkeydown按下键盘  携带的一个参数是:keyCode,这
个参数的每个按键的编码,我们可以通过编码判断用户按下
的键
练习:(上、下、左、右键控制div的移动)
部分代码如下:
 document.onkeydown = function(e){
             var ev= e||window.event;
             switch (e.keyCode)
                  {
                  case 37:
                    div1.style.left = div1.offsetLeft-10+'px';
                    break;
                  case 38:
                    div1.style.top = div1.offsetTop-10+'px';
                    break;
                  case 39:
                    div1.style.left = div1.offsetLeft+10+'px';
                    break;
                  case 40:
                    div1.style.top = div1.offsetTop+10+'px';
                    break;
                  default;
                    console.log('其他按键');
                  }
         }

5、输入框事件
js部分

    // onfocus当输入框聚焦时触发
        btn.onfocus = function(){ }
    // onblur当输入框失焦时触发
       btn.onblur = function(){}
    // oninput当在输入框输入内容的时候触发   实时监听
        btn.oninput = function(){}
    // onchange  当输入框内的内容修改时触发   提交监听
        btn.onchange = function(){}

6、表单事件
js部分

  // onsubmit表单提交事件
        form1.onsubmit = function(e){
            var e= ev||window.event;
            if (userName.value==''|| passWord.value == '') {
                //方式1. 阻止默认事件
                // e.preventDefault()   ie6-ie8不兼容 只针对on事件;
                //方式2. 阻止默认事件
                return false;
            }
        }

7、事件冒泡与下沉、如何阻止事件传递 、事件的绑定/监听
js部分

  // 事件冒泡  子节点事件带动父节点一级级执行
  // 事件冒泡  父级先执行,一级级到下面的子集执行
  // 阻止事件传递
            // 1.cancelBubble = true;(非标准)
            // 2.stopPropagation();
            用法: event.cancelBubble = true;
                  event.stopPropagation();
//事件的绑定/监听  addEventListener(‘事件’,函数,true/false);
                          注意: true下沉   false 冒泡(默认)
// 移除事件removeEventListener
例:
     var color = document.querySelectorAll('div');
        for (var i = 0; i < color.length; i++) {
            color[i].addEventListener('click',function(e){
                var ev= e||window.event;
                e.stopPropagation();
                console.log(this.id);
            },true);
        }
练习:(div的拖拽  js部分代码)
      document.addEventListener('mousedown',function(){
            div1.addEventListener('mousemove',FN,false);
        },false);
        document.addEventListener('mouseup',function(){
            div1.removeEventListener('mousemove',FN,false);
        },false);

        function  FN(e){
            var ev= e||window.event;
            div1.style.left = e.clientX-div1.offsetWidth/2+'px';
            div1.style.top = e.clientY-div1.offsetHeight/2+'px';
        }

你可能感兴趣的:(事件)