1. 程式人生 > >Js-三大事件(滑鼠事件、鍵盤事件、html事件)

Js-三大事件(滑鼠事件、鍵盤事件、html事件)

滑鼠事件 click:單擊 dblclick:雙擊 mousedown:滑鼠按下 mouseup:滑鼠擡起 mouseover:滑鼠懸浮 mouseout:滑鼠離開 mousemove:滑鼠移動 mouseenter:滑鼠進入 mouseleave:滑鼠離開
<button onclick="myClick()">滑鼠單擊</button>
<button ondblclick="myDBClick()">滑鼠雙擊</button>
<button onmousedown="myMouseDown()" onmouseup="myMouseUp()">滑鼠按下和擡起</button>
<button onmouseover="myMouseOver()" onmouseout="myMouseOut()">滑鼠懸浮和離開</button>
<button onmousemove="myMouseMove()">滑鼠移動</button>
<button onmouseenter="myMouseEnter()" onmouseleave="myMouseLeave()">滑鼠進入和離開</button>
<script>
    function myClick() {
        console.log("你單擊了按鈕!");
    }
    function myDBClick() {
        console.log("你雙擊了按鈕!");
    }
    function myMouseDown() {
        console.log("滑鼠按下了!");
    }
    function myMouseUp() {
        console.log("滑鼠擡起了!");
    }
    function myMouseOver() {
        console.log("滑鼠懸浮!");
    }
    function myMouseOut() {
        console.log("滑鼠離開!")
    }
    function myMouseMove() {
        console.log("滑鼠移動!")
    }
    function myMouseEnter() {
        console.log("滑鼠進入!")
    }
    function myMouseLeave() {
        console.log("滑鼠離開!")
    }
鍵盤事件 keydown:按鍵按下 keyup:按鍵擡起 keypress:按鍵按下擡起
<body>
<input id="name" type="text" onkeydown="myKeyDown(this.id)" onkeyup="myKeyUp(this.id)">
</body>
<script>
    /*輸出輸入的字元*/
    function myKeyDown(id) {
        console.log(document.getElementById(id).value);
    }
    /*按鍵結束,字型轉換為大寫*/
    function myKeyUp(id) {
        var text = document.getElementById(id).value;
        document.getElementById(id).value = text.toUpperCase();
    }
</script>
HTML事件 load:文件載入完成 select:被選中的時候 change:內容被改變 focus:得到游標 resize:視窗尺寸變化 scroll:滾動條移動
<body onload="loaded()">
<div style="height: 3000px" ></div>
<input type="text" id="name" onselect="mySelect(this.id)">
<input type="text" id="name2" onchange="myChange(this.id)">
<input type="text" id="name3" onfocus="myFocus()">
</body>
<script>
    window.onload = function () {
        console.log("文件載入完畢!");
    };
    /*window.onunload = function () {
     alert("文件被關閉!");
     };*/
    /*列印選中的文字*/
    function mySelect(id) {
        var text = document.getElementById(id).value;
        console.log(text);
    }
    /*內容被改變時*/
    function myChange(id) {
        var text = document.getElementById(id).value;
        console.log(text);
    }
    /*得到游標*/
    function myFocus() {
        console.log("得到游標!");
    }
    /*視窗尺寸變化*/
    window.onresize = function () {
        console.log("視窗變化!")
    };
    /*滾動條移動*/
    window.onscroll = function () {
        console.log("滾動");
    }
</script>
事件模型:
<body>
<!--指令碼模型:行內繫結-->
<button onclick="alert('hello')">hello</button>
<!--內聯模型-->
<button onclick="showHello()">hello2</button>
<!--動態繫結-->
<button id="btn">hello3</button>
</body>
<script>
    function showHello() {
        alert("hello");
    }
    /*DOM0:同一個元素只能新增一個同類事件
     * 如果新增多個,後面的會把前面的覆蓋掉*/
    var btn = document.getElementById("btn");
    btn.onclick = function () {
        alert("hello");
    };
    btn.onclick = function () {
        alert("hello world");
    };
    /*DOM2:可以給一個元素新增多個同類事件*/
    btn.addEventListener("click", function () {
        alert("hello1");
    });
    btn.addEventListener("click", function () {
        alert("hello2");
    });
    /*不同瀏覽器的相容寫法*/
    /*IE*/
    if (btn.attachEvent) {
        btn.attachEvent("onclick", function () {
            alert("hello3");
        });
    /*W3C*/
    } else {
        btn.addEventListener("click", function () {
            alert("hello4");
        })
    }
</script>
事件冒泡與事件捕獲:
 <style>
        #div1{
            width: 400px;
            height: 400px;
            background-color: #0dfaff;
        }
        #div2{
            width: 300px;
            height: 300px;
            background-color: #33ff66;
        }
        #div3{
            width: 200px;
            height: 200px;
            background-color: #fff24a;
        }
        #div4{
            width: 100px;
            height: 100px;
            background-color: #ff4968;
        }
    </style>
 <title>事件冒泡、事件捕獲</title>
</head>
<body>
<div id="div1">
    <div id="div2">
        <div id="div3">
            <div id="div4">

            </div>
        </div>
    </div>
</div>
</body>
<script>
    var div1 = document.getElementById("div1");
    div1.addEventListener("click",function (event) {
        /*阻止事件冒泡*/
        event.stopPropagation();
        alert("div1");
    },false);
    var div2 = document.getElementById("div2");
    div2.addEventListener("click",function (event) {
        /*阻止事件冒泡*/
        event.stopPropagation();
        alert("div2");
    },false);
    var div3 = document.getElementById("div3");
    div3.addEventListener("click",function (event) {
        /*阻止事件冒泡*/
        event.stopPropagation();
        alert("div3");
    },false);
    var div4 = document.getElementById("div4");
    div4.addEventListener("click",function (event) {
        /*阻止事件冒泡*/
        event.stopPropagation();
        alert("div4");
    },false);
</script>
阻止預設事件:
<body>
<a href="http://www.baidu.com" onclick="stop(event)">百度</a>
</body>
<script>
    function stop(event) {
        if (event.preventDefault()) {
            event.preventDefault();
        } else {
            event.returnValue = false;
        }
        alert("不跳轉!")
    }
</script>