JS基礎入門篇(二十)—事件物件以及案例(二)

樑志芳發表於2019-02-16

案例一.點選按鈕,選中input中的全部內容

select()方法:選中全部。

點選按鈕選中輸入框中的內容!!!!

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        input,
        button{
            margin: 0;
            padding: 0;
            outline: none;
        }
        input{
            width:200px;
            height:40px;
            border:1px solid black;
            font-size: 20px;
        }
        button{
            width: 300px;
            line-height: 40px;
            vertical-align: top;
        }
    </style>
</head>
<body>
    <input type="text">
    <button>點選此按鈕選中input的全部內容</button>
    <script>
        var input=document.getElementsByTagName("input")[0];
        var button=document.getElementsByTagName("button")[0];
        button.onclick=function () {
            input.select();
        }
    </script>
</body>
</html>

案例二.點選按鈕,選中input中的全部內容,並複製到貼上板上。

document.execCommand(“copy”);//複製到貼上板上。

點選按鈕,選中並複製到貼上板上,點選檢視效果以及程式碼

<body>
<input type="text">
<button>點選此按鈕選中input的全部內容</button>
<script>
    var input=document.getElementsByTagName("input")[0];
    var button=document.getElementsByTagName("button")[0];
    button.onclick=function () {
        input.select();//選中input的所有內容
        document.execCommand("copy");//複製到貼上板上
    }
</script>
</body>

事件物件

事件:當使用者對頁面進行操作的互動時,會觸發對應元素的事件。
事件物件:

        event
            當發生事件,執行事件處理函式的時候,該時刻的詳細資訊。
        注意:如果函式是直接呼叫的,則沒有事件物件
        注意:不同事件中的event物件可能有不同

舉例說明:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style>
    #box{
        width:100px;
        height:100px;
        background-color:red;
    }
</style>
</head>
<body>
<div id="box"></div>
<script>
    var box = document.getElementById("box");
//    box.onmouseover = fn;//列印undefined
//    box.onmousedown = fn;//列印undefined
    document.onkeydown = fn;//列印按下的鍵值
//    fn();//報錯
    function fn(){
//        console.log( typeof event );
        console.log( event.keyCode );
    }
</script>

</body>
</html>

案例三:模擬蘋果電腦選單

點選檢視效果以及程式碼!!!!

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        body{
            margin: 0;
            padding: 0;
        }
        .wrap{
            border:1px solid black;
            position: absolute;
            bottom:100px;
            text-align: center;
            width: 100%;
        }
        .wrap  div{
            width: 100px;
            height: 100px;
            background: cornflowerblue;
            display: inline-block;
            vertical-align: bottom;
        }
    </style>
</head>
<body>
    <div class="wrap">
        <div></div>
        <div></div>
        <div></div>
        <div></div>
        <div></div>
    </div>
    <script>
        var wrap=document.getElementsByClassName("wrap")[0];
        var divs=wrap.getElementsByTagName("div");
        document.onmousemove=function () {
            for(var i=0;i<divs.length;i++){
                calc( divs[i],event);
            }
        }
        function calc( obj,mouseEvent ){
            var objPos = {
                //offsetLeft:相對於最近定位父級定位元素
                x: obj.offsetLeft + 50,
                //obj.getBoundingClientRect().top:距離文件頂部位置
                y: obj.getBoundingClientRect().top + 50
            }//元素中心點座標
            var mosPos = {
                x: mouseEvent.clientX,
                y: mouseEvent.clientY
            }//滑鼠所在位置
            var dis = Math.sqrt( Math.pow( objPos.x-mosPos.x,2 ) + Math.pow( objPos.y-mosPos.y,2 ) );
            var scale = 1;
            //當滑鼠離原點中心距離小於200時,則放大
            if( dis < 200 ){
                scale = (200 - dis) / 200 + 1;
            }
            obj.style.width = 100 * scale + "px";
            obj.style.height = 100 * scale + "px";
        }
    </script>
</body>
</html>

相關文章