JavaScript-事件续

事件分类:

鼠标事件:

click(点击事件。右键不触发),mousedown(鼠标点击下去事件) mouseup(鼠标弹起事件)

click=mousedown+mouseup;  (click事件是比较迟缓的)

看如下代码:

        document.οnclick=function() {
            console.log('click');
        }
        document.οnmοusedοwn=function() {
            console.log('mousedown');
        }
        document.οnmοuseup=function() {
            console.log('mouseup');
        }

看的应该很清楚的,对时间精度要求比较的话,mousedown好一些(比如游戏技能的释放)


判断是鼠标表示左键还是右键还是滚动轮点击,需要看mousedown或者mouseup的event里面的button属性

button:左键为0,滑轮点击1,右键为2

左键点击。

dom3规定:click事件只能监听左键,只能通过mousedown和mouseup来监听鼠标键。

mouseover(鼠标移入的事件) mouseout(鼠标移出的事件)

        <div class='demo' ></div>
        <script type="text/javascript">
        var div=document.getElementsByTagName('div')[0];
        div.οnmοuseenter=function() {
            div.style.background='green';
        }
        div.οnmοuseleave=function() {
            div.style.background='red';
        }
当鼠标移入div变绿,移出变红

如何区分mousedown和click,简单的说拖拽事件不与click事件混淆,也就是拖拽时不发生click事件。

关键在时间的处理上。

        var startTime=0,lstTime=0,key=false;
        document.οnmοusedοwn=function() {
            startTime=new Date().getTime();
        }
        document.οnmοuseup=function() {
            lastTime=new Date().getTime();
            if (lastTime-startTime<300) {
                key=true;
            }
        }
        document.οnclick=function() {
            if (key) {
                //执行点击
                key=false;
            }
        }

contextmenu(右键产生菜单事件)


键盘类事件

keypress(按键事件) keydown(按键时按下)keyup(按键时弹起)

注意这里的keypress!=keydown+keyup

        document.οnkeypress=function() {
            console.log('press');
        }
        document.οnkeydοwn=function() {
            console.log('down');
        }
        document.οnkeyup=function() {
            console.log('up');
        }

keydown>keypress>keyup(keypress与它们没关系)

而且它们可以连续触发。

keypress和keydown的区别

keydown可以对键盘上的任何键做出响应,而keypress只能对字符类的键盘按键做出响应(像shift啊什么的,做不了相应)


文本类操作事件:input focus blur change

input 和change事件

        <input></input>
        <script type="text/javascript">
        var input=document.getElementsByTagName('input')[0];
        input.οninput=function() {
            console.log(this.value);
        }
        </script>

只要我们input标签里面的内容发生变化就触发


我们改成change输入123时没有发生任何变化,当鼠标的失去焦点时(比如点击其他位置),如果内容发生变化那么触发事件。

focus当鼠标焦点在input上时就触发.

onblur 属性在元素失去焦点时触发。

常用于表单验证代码(例如用户离开表单字段)。这种东西也是。


scroll事件,当滑轮滑动时触发(window上事件)

        window.οnscrοll=function() {
            console.log('cyl');
        }

当滑轮滚动时,输出cyl。

load事件这个可以去看看这个博主的,感觉很详细。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值