js Dom为页面中的元素绑定键盘或鼠标事件

摘要:
Html mouse event onload页面加载onclick mouse click on mouse over mouse move in on mouse out mouse move-out on focus on blur loss focus onchang e field content change in event triggering,这表示对当前dom对象1.Html事件的引用,直接将事件绑定到Html元素上我是一个按钮我是div函数myFun{obj.style.backgroundColor=bgcolor;}DOM 0级别通过DOM获取元素并绑定事件。如果事件绑定后跟函数名,请不要添加括号。否则,您不需要单击,页面一刷新就会触发该功能˂!

html鼠标事件

onload 页面加载

onclick 鼠标单击

onmouseover 鼠标移入

onmouseout 鼠标移出

onfocus 获取焦点

onblur 失去焦点

onchange 域的内容改变

在事件触发中,this表示对当前dom对象的引用

1、html事件,在html元素上直接绑定事件

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        .btn{
            width:140px;
            height:30px;
            background:#abcdef;
            line-height:30px;
            text-align: center;
            font-size:14px;
            border-radius:5px;
            cursor:pointer;
        }
        div{
            width:140px;
            height:140px;
            background:#abcdef;
            line-height:140px;
            text-align: center;
            font-size:14px;
            margin:50px 0;
        }
    </style>
</head>
<body>
    <button id="btn" class="btn" onclick="alert('我被点击啦!');">我是按钮</button>
    <div onmouseover="myFun(this,'orange')" onmouseout="myFun(this,'pink')">我是div</div>
    <script>
        function myFun(obj,bgcolor){
            obj.style.backgroundColor=bgcolor;
        }

    </script>
</body>
</html>

js Dom为页面中的元素绑定键盘或鼠标事件第1张

 DOM 0级

通过dom获取元素,并绑定事件

如果事件绑定跟的是函数名,千万不要加括号,否则不需要点击,页面一刷新即会触发函数

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        .btn{
            width:140px;
            height:140px;
            background:#abcdef;
            line-height:140px;
            text-align: center;
            font-size:14px;
            margin:50px 0;
        }
        .btn-active{
            width:140px;
            height:140px;
            line-height:140px;
            text-align: center;
            font-size:14px;
            margin:50px 0;
            background:pink;
        }
    </style>
</head>
<body>
    <div id="btn" class="btn">解锁</div>
    <script>
        var btn=document.getElementById("btn");
        btn.onclick=myFun;//此处函数后面一定不能加括号,否则不需要点击会直接调用
        function myFun(){
            if(this.className=="btn"){
                this.className="btn-active";
                this.innerHTML="锁定";
            }else{
                this.className="btn";
                this.innerHTML="解锁";
            }
        }

    </script>
</body>
</html>

js Dom为页面中的元素绑定键盘或鼠标事件第2张

 当把获取dom元素的脚本,放置在元素的前面,会报错

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        .btn{
            width:140px;
            height:140px;
            background:#abcdef;
            line-height:140px;
            text-align: center;
            font-size:14px;
            margin:50px 0;
        }
        .btn-active{
            width:140px;
            height:140px;
            line-height:140px;
            text-align: center;
            font-size:14px;
            margin:50px 0;
            background:pink;
        }
    </style>
        <script>
        var btn=document.getElementById("btn");
        btn.onclick=myFun;//此处函数后面一定不能加括号,否则不需要点击会直接调用
        function myFun(){
            if(this.className=="btn"){
                this.className="btn-active";
                this.innerHTML="锁定";
            }else{
                this.className="btn";
                this.innerHTML="解锁";
            }
        }

    </script>
</head>
<body>
    <div id="btn" class="btn">解锁</div>

</body>
</html>

把脚本写在window.onload事件中,确保元素已经生成

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        .btn{
            width:140px;
            height:140px;
            background:#abcdef;
            line-height:140px;
            text-align: center;
            font-size:14px;
            margin:50px 0;
        }
        .btn-active{
            width:140px;
            height:140px;
            line-height:140px;
            text-align: center;
            font-size:14px;
            margin:50px 0;
            background:pink;
        }
    </style>
    <script>
        window.onload=function(){
            var btn=document.getElementById("btn");
            btn.onclick=myFun;//此处函数后面一定不能加括号,否则不需要点击会直接调用
            function myFun(){
                if(this.className=="btn"){
                    this.className="btn-active";
                    this.innerHTML="锁定";
                }else{
                    this.className="btn";
                    this.innerHTML="解锁";
                }
            }
        }
    </script>
</head>
<body>
    <div id="btn" class="btn">解锁</div>

</body>
</html>

onfocus事件和onblur事件

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        #tip{display: none;}
    </style>
    <script>
        window.onload=function(){
            var password=document.getElementById("password");
            var tip=document.getElementById("tip");
            password.onfocus=function(){
                tip.style.display="inline-block";
            }
            password.onblur=function(){
                var val=this.value;
                // 密码是6位数字
                if(val.length==6 && !isNaN(val)){
                    tip.innerHTML="ok";
                }else{
                    tip.innerHTML="error";
                }
            }
        }
    </script>
</head>
<body>
    <input type="password" id="password" name="password">
    <span id="tip">请输入密码</span>
</body>
</html>

js Dom为页面中的元素绑定键盘或鼠标事件第3张

 获取body元素  document.body

当select中的option被选择时,select的value值就会等于被选中的option的value值

因此可以用this.value得到被选择的option的value值

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        body{
            width:100%;
            height:100%;
        }
    </style>
    <script>
        window.onload=function(){
            var menu=document.getElementById("menu");
            menu.onchange=function(){
                var color=this.value;
                if(color==""){ 
                    document.body.style.backgroundColor="#fff";
                }else{ 
                    document.body.style.backgroundColor=color;
                }
            }
        }
    </script>
</head>
<body>
    <p>请选择你喜欢的颜色呀</p>
    <select name="menu" id="menu">
        <option value="">请选择</option>
        <option value="orange">元气橙</option>
        <option value="pink">仙女粉</option>
        <option value="#abcdef">森系蓝</option>
    </select>
</body>
</html>

js Dom为页面中的元素绑定键盘或鼠标事件第4张

 鼠标事件

onmousedown 鼠标按下

onmousemove 鼠标在元素内移动

onmouseup 鼠标松开

onresize 浏览器窗口大小调整

onscroll 拖动滚动条

onsubmit 表单提交 加在form表单上,而不是加在提交按钮上

onmousedown+onmouseup=onclick

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        body{
            width:100%;
            height:100%;
        }
        div{
            width:200px;
            height:200px;
            background:#abcdef;
            overflow: auto;
        }
        #myform{
            margin-top:50px;
        }
    </style>
    <script>
        window.onload=function(){
            var div=document.getElementById("div");
            div.onmousedown=function(){
                this.innerHTML="onmousedown";
            }
            div.onmousemove=function(){
                this.innerHTML="onmousemove";
            }
            div.onmouseup=function(){
                this.innerHTML="onmouseup";
            }
            window.onresize=function(){
                console.log("resized");
            }
            div.onscroll=function(){
                this.style.color="orange";
            }

            var myform=document.getElementById("myform");
            myform.onsubmit=function(){
                alert("表单提交啦~");
            }
        }
    </script>
</head>
<body>
    <div id="div">
        文字<br>文字<br>文字<br>文字<br>文字<br>文字<br>文字<br>文字<br>文字<br>文字<br>文字<br>文字<br>文字<br>文字<br>文字<br>文字<br>文字<br>文字<br>文字<br>文字<br>文字<br>文字<br>文字<br>文字<br>文字<br>文字<br>文字<br>文字<br>文字<br>文字<br>文字<br>文字<br>文字<br>文字<br>文字<br>文字<br>文字<br>文字<br>
    </div>
    <form id="myform">
        <input type="submit">
    </form>
</body>
</html>

js Dom为页面中的元素绑定键盘或鼠标事件第5张

 键盘事件

onkeydown 键盘被按下

onkeypress 键盘被按下(只有字母+数字+符号)

onkeyup 键盘被释放

keyCode 键码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        body{
            width:100%;
            height:100%;
        }
    </style>
    <script>
        window.onload=function(){
            var count=document.getElementById("count");
            var text=document.getElementById("text");

            text.onkeyup=function(e){
                console.log(e.keyCode);
                var len=text.value.length;
                count.innerHTML=30-len;
            }
        }
    </script>
</head>
<body>
    <p>还可以输入<span id="count">30</span>/30</p>
    <textarea name="text" id="text" cols="60" rows="3"></textarea>
</body>
</html>

js Dom为页面中的元素绑定键盘或鼠标事件第6张

免责声明:文章转载自《js Dom为页面中的元素绑定键盘或鼠标事件》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Java WebService(实战) 简单实例实时监听输入框值变化:oninput &amp;amp; onpropertychange下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

js中setTimeout和setInterval的应用方法(转)

JS里设定延时: 使用SetInterval和设定延时函数setTimeout 很类似。setTimeout 运用在延迟一段时间,再进行某项操作。 setTimeout("function",time) 设置一个超时对象 setInterval("function",time) 设置一个超时对象 SetInterval为自动重复,setTimeout不会重...

vue使用iframe嵌入html,js方法互调

前段时间 使用h5搞了个用cesium.js做的地图服务功能,后来想整合到vue项目,当然最简单的就是iframe直接拿来用了。但html和vue的方法交互就是成了问题,vue调用html种方法还好,尤其是html调用vue中的方法当初就没有解决,忙着项目上线直接搞了个setInterval不停轮询,哎不说他了;现在空点了来把问题解决了,俗话说得好闲时学来...

js new Date()参数格式

最近在写页面使用new Date()获取时间戳在ie浏览器中测试发现无效;后来发现是参数格式问题, new Date()参数格式如下: 1、用整数初始化日期对象var date1 = new Date(2017,06,06); console.log(date1); // Thu Jul 06 2017 00:00:00 GMT+0800 (中国标准时间)...

js实现日期显示的一些操作

1、js获取当前日期(yyyy-mm-dd) 以下代码是获取到的当前日期: 1 var myDate = new Date(); 2 var year = myDate.getFullYear(); //获取完整的年份(4位,1970-????) 3 var month = myDate.getMonth()+1; //获取当前月...

浅谈Js 操作Cookie,以及HttpOnly 的限制

. Js 操作 Cookie. 一般来说,只有服务器操作Cookie 才能保证一些必要的安全。但有时候,可能需要前端来增删改查 Cookie, 这个时候咱们的主角出现了——HttpOnly(๑•̀ㅂ•́) ✧. HttpOnly: HttpOnly is an additional flag included in a Set-Cookie HTTP re...

原生JS 和 JQ 获取滚动条的高度,以及距离顶部的高度

JQ:相对比较简便 获取浏览器显示区域(可视区域)的高度 : $(window).height(); 获取浏览器显示区域(可视区域)的宽度 : $(window).width(); 获取页面的文档高度 $(document).height(); 获取页面的文档宽度 : $(document).width(); 浏览器当前窗口...