JS 10

10.1 事件的概念

事件源

事件名

事件注册

事件处理

事件源:粤商大酒店201房间

事件名:火灾

事件注册:事先已规划好片区所属为南湖区消防支队

事件处理:救火

10.2 常用事件

 鼠标:单击事件

<body>
<p id="p1" οnclick="fun()">单击事件测试</p>
</body>
<script>
    function fun(){
        //获取指定元素
        var p1 = document.getElementById("p1");
        p1.innerText ="hello word";
        p1.style.fontSize="60px"
    }
</script>

事件源是id为“p1”的元素,事件名是单击,事件注册是οnclick="fun()",单击“p1”时会触发fun函数

双击事件

<body>
<div id="div1" οnclick="zoomout()" οndblclick="Ad()">

</div>
</body>
<script>
    function zoomout(){
        var div1 = document.getElementById("div1");
        div1.style.width="200px";
        div1.style.height="200px";

div1.style.backgroundColor="lime";
    }
    function Ad(){
        var div1 = document.getElementById("div1");
        div1.style.width="500px";
        div1.style.height="500px";
        div1.style.backgroundColor="red";
    }

 

鼠标按下、弹起事件 onmousedown/onmouseup

<div id="div1" οnmοusedοwn="zoomout()" οnmοuseup="Ad()">
</div>

鼠标移入/离开onmouseenter/onmouseleave

<div id="div1" οnmοuseenter="zoomout()" οnmοuseleave="Ad()">
</div>

onmouseover/onmouseout

用到了冒泡的原理,当有两层时,移动到里层时会先显示完里层,然后再会显示外层

与移入/离开类似

 

鼠标移动onmousemove

 

滚轮onmousewheel

 

键盘事件

keypress,只能捕获可以打印的字符

function search(e){
    if(e.keyCode == 13){
        var what = document.getElementById("what");
        alert("开始搜索:"+what.value)
    }
}

keyCode记录按下键的编码

 

keydown、keyup捕获所有的键(个别除外)

 

<script>
    var top1 = 0;
    var left = 0;
    function move(e) {
        switch(e.keyCode) {
            case 37:
                left -= 5;
                break;
            case 38:
                top1 -= 5;
                break;
            case 39:
                left += 5;
                break;
            case 40:
                top1 += 5;
                break;
        }

        var img1 = document.getElementById("img1");
        img1.style.top = top1+"px";
        img1.style.left = left+"px";
    }

使用top导致上下移动失败,原因是和window.top冲突

如果把两个变量移入函数中,发现每次只能移5px,原因是调用函数内部的变量每次都会初始化

 

其他事件:onload(页面)、onfocus(焦点)、onblur(失去焦点)

 

10.3 事件的注册

三种

(1)使用onXXX的属性

(2)通过JS去设置元素的onXXX属性

(3)通过addEventListener设置新的属性

2、3种将页面的内容、样式和行为分离,分离后有利于分工合作

 

第三种方式的第一个参数事件名,第二个参数事件处理函数。可以添加事件监听,也可以移除,用removeEventListener,参数与之前的相同。可以通过这两个去动态的注册不同的事件处理程序

10.4 捕获与冒泡

<body>
    <div id="div1">
        <p id="p1">去吧,皮卡丘</p>
    </div>
</body>
<script>
    var div1 = document.getElementById("div1");
    var p1 = document.getElementById("p1");
    p1.addEventListener("click",click1);
    div1.addEventListener("click",click2);

    function click1(){
        alert("战斗失败");
    }
    function click2(){
        alert("战斗获胜");
    }
</script>

单击文字时,先提示战斗失败,后提示战斗获胜

冒泡:从内到外依次触发

捕获:反之

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值