12.31

80 阅读1分钟

键盘事件 1640968783(1).jpg

<body>
    用户名:<input type="text" id="t">
    <script>
        let t = document.getElementById('t');

        t.onkeydown = function (e){
            /* 兼容写法 */
            let eobj = e||event;
            /* 事件源对象 */
            console.log(eobj);
            if(eobj.keyCode == 13){
                // alert(this.value)
                alert(eobj.target.value)
            }
        }
        /* 在输入框中输入 字符 按下回车的时候 把输入的字 alert出来 */




        /* 键盘按下的时候触发 */
        // t.onkeydown = function (){
        //     console.log('键盘我按下了');
        // }
        // /* 连续敲击的时候触发 */
        // t.onkeypress = function (){
        //     console.log('连续按下键盘并抬起的时候触发');
        // }
        // /* 键盘抬起的时候触发 */
        // t.onkeyup = function (){
        //     console.log('键盘我抬起了');
        // }
        /* 顺序 onkeydown > onkeypress > onkeyup */
    </script>

</body>
复制代码

用户界面事件

<script>
        /* 当整个页面被加载完成(包括img图片也完全加载完毕)的时候调用 */
        window.onload = function () {
            /* 因为执行js获取dom的时候 元素还没加载 所以获取不到 */
            let div1 = document.getElementById('div1')
            div1.onclick = function (e){
                console.log(e.target.innerText);
            }
            // console.log(div1.innerHTML);


        }
        /* js在head里面写 点击div alert出div里面的文字
        页面尺寸改变了 给div加个红色的背景 */

        /* 当页面尺寸发生变化的时候 dom文档已经加载完毕了 */
        window.onresize = function () {
            console.log('页面尺寸改变了');
            document.getElementById('div1').style.background='red'
        }

    </script>
    
复制代码

1640968964(1).png 阻止事件默认行为

<body>
    <!-- a标签的跳转是默认行为 -->
    <a href="http://www.baidu.com">跳转</a>
    <form action="文字放大缩小.html">
        <input type="submit" value="提交">
    </form>
    木兰词·拟古决绝词柬友

[ 清 ] 纳兰性德



人生若只如初见,何事秋风悲画扇。

等闲变却故人心,却道故人心易变。

骊山语罢清宵半,泪雨零铃终不怨。

何如薄幸锦衣郎,比翼连枝当日愿。
    <script>
        let input = document.querySelector('input');
        input.onclick = function (e){
            console.log(1);
            // return false;
            e.preventDefault();
            
        }

        /* 当你鼠标右击的时候会发生的事件 */
        document.oncontextmenu = function (e){
            // alert('鼠标右击了')
            /* 禁用了右击鼠标出现的默认菜单 */

            /* 这两种禁用方式的区别是
            return false会阻止下面代码的执行 方法已经结束了
            e.preventDefault()不会阻止下面代码执行 */
            return false
            // e.preventDefault()
            console.log(1);
        }

      

        let a = document.querySelector('a');
        a.onclick = function (e){
            /* 取消默认事件 两种方法 */
            this.style.background = 'red'
            // return false
            /* 事件源对象里面的取消默认事件的方法 */
            // e.preventDefault();
            
        }
    </script>

</body>
复制代码

右击菜单

<style>
        #div1{
            width: 100px;
            height: 200px;
            background-color: bisque;
            position: absolute;
            left:0;
            top:0;
            display: none;
        }
    </style>
<body>
    <div id="div1"></div>
    <script>
     /* 鼠标右击 禁止出现默认的菜单
            显示一个自己的菜单 菜单A 菜单B 菜单C
            出现的位置就是 鼠标的位置 
            div postion:absolute
            top left clientX clientY
        */
        let div1 = document.getElementById('div1');
        document.oncontextmenu = function (e){
            e.preventDefault();
            div1.style.display = 'block';
            console.log(e.clientX);
            console.log(e.clientY);
            div1.style.left = e.clientX + 'px'
            div1.style.top = e.clientY + 'px'
        }
    </script>
  
</body>
复制代码

获得div中滚动条的距离

<style>
        #div1 {
            width: 300px;
            height: 300px;
            border: 1px solid #ccc;
            padding: 5px;
            overflow: auto;
        }

        #div2 {
            width: 600px;
            height: 600px;
            background-color: aquamarine;
        }
    </style>
    <body>
    <div id="div1">
        <div id="div2"></div>
    </div>
    <!-- 滚动条 拖动的时候 可以监听到 滚动条的距离顶部的距离 -->
    <script>
        let div1 = document.getElementById('div1')
        /* onscroll 不仅监听y轴滚动条 还监听x轴滚动条 */
        div1.onscroll = function(){
            // console.log(div1.scrollTop);
            console.log(div1.scrollLeft);
        }
    </script>


</body>
复制代码

拖拽组件

<style>
        #div1{
            width: 150px;
            height: 150px;
            background-color: blueviolet;
            position: absolute;
            left:100px;
            top:0px;
        }
    </style>
    <body>
    <div id="div1"></div>
    <script>
        let div1 = document.getElementById('div1')
        div1.onmousedown = function (e){
            /* 按下的时候 获取点的位置 到盒子边界距离 */
            let areaX = e.clientX - div1.offsetLeft;
            let areaY =  e.clientY - div1.offsetTop;
            document.onmousemove = function (e){
                /* 移动的时候获取的client的动态距离 - 盒子内点的到边缘的固定距离 */
                /* 最后获得的 就是 盒子到文档的距离 */
                div1.style.left = e.clientX - areaX + 'px'
                div1.style.top = e.clientY - areaY + 'px'
            }
        }
        div1.onmouseup = function (){
            document.onmousemove = null;
        }
    </script>

</body>