zoukankan      html  css  js  c++  java
  • 0175 常用鼠标事件 之 鼠标事件对象、获取鼠标在页面的坐标、跟随鼠标的天使案例

    event对象代表事件的状态,跟事件相关的一系列信息的集合。现阶段我们主要是用鼠标事件对象 MouseEvent 和键盘事件对象 KeyboardEvent。

    clientX、clientY:相对于可视区的左上角的坐标。
    pageX、pageY:相对于整个页面的的左上角的坐标,不管页面高度如何,不管页面如何滚动。【重点,用的多】
    screenX、screenY:用得少,了解。
    


    1.4.3 获取鼠标在页面的坐标

        <script>
            // 鼠标事件对象 MouseEvent
            document.addEventListener('click', function(e) {
                // 1. client 鼠标在可视区的x和y坐标
                console.log(e.clientX);
                console.log(e.clientY);
                console.log('---------------------');
    
                // 2. page 鼠标在页面文档的x和y坐标
                console.log(e.pageX);
                console.log(e.pageY);
                console.log('---------------------');
    
                // 3. screen 鼠标在电脑屏幕的x和y坐标
                console.log(e.screenX);
                console.log(e.screenY);
    
            })
        </script>
    

    1.4.4 案例:跟随鼠标的天使

    <!DOCTYPE html>
    <html lang="en">
    
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Document</title>
        <style>
            img {
                position: absolute;
                top: 2px;
            }
        </style>
    </head>
    
    <body>
        <img src="images/angel.gif" alt="">
        <script>
            var pic = document.querySelector('img');
            document.addEventListener('mousemove', function(e) {
                // 1. mousemove只要我们鼠标移动1px 就会触发这个事件
                // console.log(1);
                // 2.核心原理: 每次鼠标移动,我们都会获得最新的鼠标坐标, 把这个x和y坐标做为图片的top和left 值就可以移动图片
                var x = e.pageX;
                var y = e.pageY;
                console.log('x坐标是' + x, 'y坐标是' + y);
                //3 . 千万不要忘记给left 和top 添加px 单位
                pic.style.left = x - 50 + 'px';
                pic.style.top = y - 40 + 'px';
            });
            
            
            // 优化:使用clientX、clientY、offsetWidth、offsetTop更好
            var pic = document.querySelector('img');
            document.addEventListener('mousemove', function(e) {
                let [x, y] = [e.clientX, e.clientY]
                console.log(x, y)
                pic.style.left = x - pic.offsetWidth / 2 + 'px'
                pic.style.top = y - pic.offsetTop / 2 + 'px'
            });
        </script>
    </body>
    
    </html>
    
  • 相关阅读:
    Permutations II
    Add Binary
    Integer to Roman
    Roman to Integer
    Word Break
    完整记录一则Oracle 11.2.0.4单实例打PSU补丁的过程
    SQL Tuning 基础概述06
    SQL Tuning 基础概述05
    SQL Tuning 基础概述04
    SQL Tuning 基础概述03
  • 原文地址:https://www.cnblogs.com/jianjie/p/12178173.html
Copyright © 2011-2022 走看看