js事件以及案例

目录

onload 页面加载事件

onresize 改变窗口大小时触发事件

onscroll滚动条事件

表单事件

键盘事件

鼠标事件

事件绑定

冒泡事件

捕获事件案例


onload 页面加载事件

window.onload是一个事件,在文档加载完成后能立即触发,并且能够为该事件注册事件处理函数。将要对对象或者模块进行操作的代码存放在处理函数中。即:window.onload =function (){这里写操作的代码};

案例:

<img src="images/logo_170x46.png" id="pic">

    <div id="box"></div>

    <script type="text/javascript">

        /* window.οnlοad=function(){

                console.log("图片加载完成")

            } */

        var op = document.getElementById('pic');

        op.onload = function () {

            console.log("图片加载")

        }

    </script>

onresize 改变窗口大小时触发事件

• onresize 事件会在窗口或框架被调整大小时发生

• window 对象支持 onresize 事件,同时常规标签也都支持( div 、 textarea 、 table 等)

• 获取窗口的宽高值

兼容写法如下
• 宽度: document.body.clientWidth ||document.documentElement.clientWidth
• 高度: document.body.clientHeight ||document.documentElement.clientHeight

案例:

<!DOCTYPE html>

<html>

    <head>

        <meta charset="utf-8">

        <title></title>

        <style type="text/css">

            #box{width: 200px;height: 200px;background-color: red;position: absolute;

            top: 0;left: 0;}

        </style>

    </head>

    <body>

        <div id="box"></div>

        <script type="text/javascript">

            var ow=0;

            var oh=0;

            var obox=document.getElementById("box");

            ow=document.documentElement.clientWidth;

            oh=document.documentElement.clientHeight;

            window.οnresize=function(){

                ow=document.documentElement.clientWidth;

                oh=document.documentElement.clientHeight;

                autoFn(ow,oh);

            }

            function autoFn(w,h){

                obox.style.left=(w-obox.offsetWidth)/2+"px";

                obox.style.top=(h-obox.offsetHeight)/2+"px";

            }

        </script>

    </body>

</html>

onscroll滚动条事件

是检测页面是否滚动的函数,常用在页面的动态加载中

返回顶部案例:

<!DOCTYPE html>

<html>

    <head>

        <meta charset="utf-8">

        <title></title>

        <style type="text/css">

            #back{

                width: 100px;

                height: 200px;

                background-color: red;

                color: #fff;

                border: none;

                position: fixed;

                right: 10px;

                bottom: 100px;

                cursor: pointer;

            }

        </style>

    </head>

    <body style="height: 2000px;">

        <button id="back">返回顶部</button>

        <script type="text/javascript">

            var oback=document.getElementById('back');

            oback.οnclick=function(){

                document.documentElement.scrollTop=0;

            }

        </script>

    </body>

</html>

表单事件

<!DOCTYPE html>

<html>

    <head>

        <meta charset="utf-8">

        <title></title>

    </head>

    <body>

        <!-- onfocus:元素获取焦点事件

        onblur:元素失去焦点事件 -->

        <!-- 初始化设置焦点 autofocus -->

        <form action="01onload.html" method="post" id="form">

            <input type="text" placeholder="请输入用户名" id="user">

            <input type="password" placeholder="请输入密码" id="pass">

            <input type="reset" value="重置" >

            <input type="submit" value="提交" >

        </form>

        <script type="text/javascript">

            var ouser=document.getElementById("user");

            // ouser.οnfοcus=function(){

            //  console.log("获取焦点事件");

            // }

            // ouser.οnblur=function(){

            //  console.log("失去焦点事件");

            // }

           

            // onchange用户改变域的内容的时候触发的事件

            // ouser.οnchange=function(){

            //  console.log(this.value);

            // }

           

            // onreset 表单重置的时候触发事件

            // var oform=document.getElementById("form");

            // oform.οnreset=function(){

            //  var off=confirm("是否要清空表单");

            //  if(!off){

            //      return false;//阻止清空

            //  }

            // }

           

            // onsubmit事件:表单提交的时候触发的事件

            var oform=document.getElementById("form");

            oform.οnsubmit=function(){

                if(oform.user.value===''){

                    alert("用户名不能为空");

                    return false;

                }

            }

           

        </script>

    </body>

</html>

键盘事件

<!DOCTYPE html>

<html>

    <head>

        <meta charset="utf-8">

        <title></title>

    </head>

    <body>

        <input type="text" id="txt">

        <!-- onkeydown :键盘按下

        onkeypress:某个键盘被按下然后释放的时候发生的事件

        onkeyup:某个键盘被松开 -->

        <script type="text/javascript">

            // document.οnkeydοwn=function(){

            //  console.log("当前是某个键盘的键被按下了")

            // }

            // document.οnkeypress=function(){

            //  console.log("某个键盘被按下然后释放")

            // }

            // document.οnkeyup=function(){

            //  console.log("当前是某个键盘的键被松开;了")

            // }

           

            var otxt=document.getElementById('txt');

            otxt.οnkeyup=function(){

                console.log(this.value)

            }

           

        </script>

    </body>

</html>

鼠标事件

<!DOCTYPE html>

<html>

    <head>

        <meta charset="utf-8">

        <title></title>

    </head>

    <body>

        <input type="button" id="btn" value="双击">

        <script type="text/javascript">

            // ondbclick双击事件

            document.getElementById('btn').οndblclick=function(){

                alert(1)

            }

            // onmousedown鼠标按下

            document.οnmοusedοwn=function(){

                console.log("鼠标按下")

            }

           

            document.οnmοuseup=function(){

                console.log("鼠标抬起")

            }

           

            document.οnmοusemοve=function(){

                console.log("鼠标移动")

            }

           

        </script>

    </body>

</html>

事件绑定

<!DOCTYPE html>

<html>

    <head>

        <meta charset="utf-8">

        <title></title>

    </head>

    <body>

        <input type="button" name="" id="btn" value="按钮" />

        <script type="text/javascript">

        var obtn=document.getElementById('btn');

        // obtn.οnclick=function(){

        //  alert(1)

        // }    

        // obtn.οnclick=fn2;

        // obtn.οnclick=fn1;

        function fn1(){

            alert(1)

        }

        function fn2(){

            alert(2)

        }

       

       

        // addEventListener()  兼容chrome firefox safari opera

        // removeEventListener()

        // 所有dom的节点都包含这个方法,并且这个方法会接收3个参数

        // 1.事件类型

        // 2.事件的处理方法

        // 3.布尔参数 默认为false

        // true 捕获阶段调用事件处理的方法,false冒泡事件调用事件处理的方法

       

        // obtn.addEventListener('click',false);

        // obtn.addEventListener('click',fn2,false);

       

        // attachEvent()兼容ie7/8

        // obtn.attachEvent('onclick',fn1)

        // obtn.attachEvent('onclick',fn2)

       

        // onclick 是绑定事件,告诉浏览器在鼠标点击的时候要执行什么

        // click本身的作用是触发onclick事件,只要你执行click方法,就可以执行onclick事件

       

        function bind(obj,even,fn){

            if(obj.addEventListener){

                obj.addEventListener(even,fn,false);

            }else{

                obj.attachEvent('on'+enen,function(){

                    fn.call(obj);

                })

            }

           

        }

           

        bind(obtn,'click',function(){

            alert(this.value)

        })

           

           

        </script>

    </body>

</html>

冒泡事件

<!DOCTYPE html>

<html>

    <head>

        <meta charset="utf-8">

        <title></title>

        <style type="text/css">

            div{padding: 40px;}

            #box1{background-color: red;}

            #box2{background-color: yellow;}

            #box3{background-color: green;}

        </style>

    </head>

    <body id="body">

        <div id="box1">box1

            <div id="box2">box2

                <div id="box3">

                    box3

                </div>

            </div>

        </div>

        <!-- 事件冒泡:当一个元素接收到事件的时候,会把已经收到的所有的事件传递给父级,直到window。事件冒泡默认情况存在的, -->

        <script type="text/javascript">

            var obox1=document.getElementById('box1'),

            obox2=document.getElementById('box2'),

            obox3=document.getElementById('box3');

            var obody=document.getElementById('body');

            function getid(){

                console.log(this.id);

                event.stopPropagation();

            }

            obox1.οnclick= getid;

            obox2.οnclick= getid;

            obox3.οnclick= getid;

        </script>

    </body>

</html>

捕获事件案例

<!DOCTYPE html>

<html>

    <head>

        <meta charset="utf-8">

        <title></title>

        <style type="text/css">

            div{padding: 40px;}

            #box1{background-color: red;}

            #box2{background-color: yellow;}

            #box3{background-color: green;}

        </style>

    </head>

    <body id="body">

        <div id="box1">box1

            <div id="box2">box2

                <div id="box3">

                    box3

                </div>

            </div>

        </div>

       

        <script type="text/javascript">

            var obox1=document.getElementById('box1'),

            obox2=document.getElementById('box2'),

            obox3=document.getElementById('box3');

            var obody=document.getElementById('body');

            function getid(){

                console.log(this.id);

            }

            obox1.addEventListener('click',getid,true);

            obox2.addEventListener('click',getid,true);

            obox3.addEventListener('click',getid,true);

        </script>

    </body>

</html>


以上案例可以自己边敲边理解,个人的理解都写在注释里了,希望能帮助到大家,有不对的地方或者不当的地方希望大佬指点,我会听取意见。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值