zoukankan      html  css  js  c++  java
  • 【Python全栈-JavaScript】原生的JavaScript 之鼠标事件、键盘事件和HTML事件

    原生的JavaScript 鼠标事件和键盘事件

    JavaScript 鼠标事件有以下8种:

    onmousedown
    鼠标的键钮被按下。

    onmouseup
    鼠标的键钮释放弹起。

    onclick
    鼠标左键(或中键)被单击。

    事件触发顺序是:onmousedown -> onmouseup -> onclick

    ondblclick
    鼠标左键(或中键)被双击。

    事件触发顺序是:onmousedown -> onmouseup -> onclick -> onmousedown -> onmouseup -> onclick -> ondblclick。

    oncontextmenu
    弹出右键菜单,它可能是鼠标右键触发的,也可能是键盘的菜单键触发的。

    onmouseover
    鼠标移动到目标上方。

    onmouseout
    鼠标从目标上方移出。

    onmousemove
    鼠标在目标上方移动

    注意:事件名称大小写敏感。若需要监听以上事件,则在事件名的前面加个on即可。

    事件区别

    onmouseover、onmouseout:鼠标移动到自身时候会触发事件,同时移动到其子元素身上也会触发事件

    onmouseenter、onmouseleave:鼠标移动到自身是会触发事件,但是移动到其子元素身上不会触发事件

    全局事件对象event

    event.x
    事件发生时鼠标的位置

    event.y
    事件发生时鼠标的位置

    button
    鼠标的哪一个键触发的事件

    0
    鼠标左键
    1
    鼠标中键
    2
    鼠标右键

    代码范例1:

    <html>
      <body>
        <script type="text/javascript">
          function appendText(str) {
            document.body.innerHTML += str + "<br/>";
          }
          document.onmousedown = function() {
            appendText("onmousedown");
            appendText("button = " + event.button);
            appendText("(x,y) = " + event.x + "," + event.y);
          }
          document.onmouseup = function() {
            appendText("onmouseup");
          }
          document.onclick = function() {
            appendText("onclick");
          }
          document.ondblclick = function() {
            appendText("ondblclick");
          }
          document.oncontextmenu = function() {
            appendText("oncontextmenu");
          }
          document.onmouseover = function() {
            appendText("onmouseover");
          }
          document.onmouseout = function() {
            appendText("onmouseout");
          }
          document.onmousemove = function() {
            appendText("mousemove");
          }
        </script>
      </body>
    </html>

    代码范例2:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>鼠标事件</title>
    </head>
    <body>
    <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>
    
    </body>
    <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("鼠标离开!")
        }
        
    </script>
    </html>

    JavaScript 键盘事件有以下3种:

    keydown:按键按下
    keyup:按键抬起
    keypress:按键按下抬起
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>键盘事件</title>
    </head>
    <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>

    JavaScript HTML事件

    load:文档加载完成
    select:被选中的时候
    change:内容被改变
    focus:得到光标
    resize:窗口尺寸变化
    scroll:滚动条移动
     
  • 相关阅读:
    java lambda表达式检查list集合是否存在某个值
    Java使用枚举来消除if else(转载)
    常用的设计模式汇总,超详细!
    mybatis generator 自动生成代码
    eclipse集成lombok插件
    eclipse使用mybatis实现Java与xml文件相互跳转
    GitLab企业级代码管理仓库
    详解Eureka 缓存机制
    JAVA设计模式之工厂模式
    solr常见错误
  • 原文地址:https://www.cnblogs.com/XJT2018/p/11049401.html
Copyright © 2011-2022 走看看