javascript实现跟随鼠标移动的图片

以下是Javascript实现跟随鼠标移动的图片的完整攻略:

第一步:HTML 模板

首先,我们需要创建一个包含图片的 HTML 模板。可以按照以下示例来创建一个基本 HTML 模板:

    <!DOCTYPE html>
    <html>
     <head>
      <title>跟随鼠标移动的图片</title>
     </head>
     <body>
      <div class="container">
       <img src="path_to_image" alt="跟随鼠标移动的图片" id="image">
      </div>
      <script src="path_to_javascript_file"></script>
     </body>
    </html>

第二步:CSS 样式

接下来,需要使用 CSS 来设置图片的样式以及容器的样式。示例如下:

    .container {
      position: relative;
      width: 500px;
      height: 500px;
    }

    #image {
      position: absolute;
      width: 100px;
      height: 100px;
      top: 50%;
      left: 50%;
      transform: translate(-50%,-50%);
    }

这些样式可以使图片在包含器中居中。

第三步:JavaScript 代码

现在,我们将添加 JavaScript 代码,使跟随鼠标移动的图片成为可能。以下是示例代码:

    var image = document.getElementById('image');
    document.onmousemove = function(event) {
      var mouseX = event.clientX;
      var mouseY = event.clientY;

      image.style.left = mouseX - 50 + 'px';
      image.style.top = mouseY - 50 + 'px';
    }

这段代码中,首先获取图片的元素,然后使用 document.onmousemove 事件监听器,它会在鼠标移动时触发。然后获取鼠标的 X 和 Y 坐标,并通过设置图片的样式来改变它的位置(使用 mouseX 和 mouseY 减去图片宽度的一半,以使鼠标指向图片的中心)。这样设置之后,图片就会在鼠标移动时跟随鼠标移动。

示例一:蓝色眼睛

下面的代码展示了一组示例。首先,我们将创建一个 HTML 模板,然后添加 CSS 样式和 JavaScript 代码,使图片跟随鼠标移动。这里,我们将使用两个示例,第一个示例是蓝色眼睛。以下是完整的代码:

    <!DOCTYPE html>
    <html>
      <head>
        <meta charset="UTF-8">
        <title>示例 - 跟随鼠标移动的图片</title>
        <style>
          body {
            margin: 0;
            overflow: hidden;
          }
          .container {
            position: relative;
            width: 100%;
            height: 100vh;
          }
          img {
            position: absolute;
            width: 150px;
            height: 150px;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
            pointer-events: none;
          }
        </style>
      </head>
      <body>
        <div class="container">
          <img src="https://images.unsplash.com/photo-1521338633546-ae8d1ee1a4f8?ixlib=rb-1.2.1&auto=format&fit=crop&w=334&q=80" alt="跟随鼠标移动的眼睛" id="blue-eye" />
        </div>
        <script>
          var blueEye = document.getElementById('blue-eye');
          document.onmousemove = function(e) {
            var x = e.clientX;
            var y = e.clientY;
            blueEye.style.left = x - 75 + 'px';
            blueEye.style.top = y - 75 + 'px';
          };
        </script>
      </body>
    </html>

在这里,我们使用了 Unsplash 网站上的一张图片,并设置了以下 CSS 样式:

  • body:用于使网页全屏
  • .container:居中图片并使它填满整个屏幕
  • img:用于设置图片的样式和设置图片默认不被点击

我们还向 JavaScript 代码添加了事件监听器,每当鼠标移动时都调用该代码。在其中,我们获取了蓝色眼睛元素的引用,并将其移动到鼠标的位置。让我们试试!

示例二:紫色薰衣草

接下来,我们来尝试另一个示例:紫色薰衣草。我们将使用同样的 HTML 模板和 CSS 样式,但是我们会更改 JavaScript 代码以使其适应新的示例。以下是完整代码:

    <!DOCTYPE html>
    <html>
      <head>
        <meta charset="UTF-8">
        <title>示例 - 跟随鼠标移动的图片</title>
        <style>
          body {
            margin: 0;
            overflow: hidden;
          }
          .container {
            position: relative;
            width: 100%;
            height: 100vh;
          }
          img {
            position: absolute;
            width: 150px;
            height: 150px;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
            pointer-events: none;
          }
        </style>
      </head>
      <body>
        <div class="container">
          <img src="https://images.unsplash.com/photo-1524468199101-0240ddb4d015?ixlib=rb-1.2.1&auto=format&fit=crop&w=500&q=80" alt="跟随鼠标移动的薰衣草" id="lavender" />
        </div>
        <script>
          var lavender = document.getElementById('lavender');
          var x = 0;
          var y = 0;
          setInterval(function() {
            x += (parseInt(Math.random() * 11) - 5);
            y += (parseInt(Math.random() * 11) - 5);
            lavender.style.left = x + 'px';
            lavender.style.top = y + 'px';
          }, 100);
        </script>
      </body>
    </html>

在这个示例中,我们还是用了 Unsplash 网站上的一张图片,但更改了以下 JavaScript 代码:

  • 首先,我们使用了 setInterval 函数来连续移动图片。
  • 在每个 setInterval 周期内,我们随机生成 x 和 y 坐标的增量,然后使用这些增量重新设置图片的位置。
  • 由于我们使 x 和 y 的增量随机,因此使图片将按随机位置跟随鼠标移动。

让我们查看结果!

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:javascript实现跟随鼠标移动的图片 - Python技术站

(0)
上一篇 2023年6月11日
下一篇 2023年6月11日

相关文章

  • BootStrap表单验证中的非Submit类型按钮点击时触发验证的坑

    Bootstrap是一款常用的前端开发框架,封装了很多常用的功能组件,如表单验证功能。但是在使用Bootstrap的表单验证组件时,我们可能会遭遇一些坑,其中比较典型的就是非Submit类型按钮点击时不能触发表单验证的问题。 下面是解决这个问题的攻略步骤: 步骤1:为非Submit类型按钮添加点击事件 首先,我们需要为非Submit类型按钮添加点击事件。在这…

    JavaScript 2023年6月10日
    00
  • JavaScript实现解析INI文件内容的方法

    当我们需要从INI文件中获取数据时,可以使用JavaScript实现解析INI文件内容的方法。以下是具体的步骤: 读取INI文件内容 通过使用 XMLHttpRequest 对象可以获取本地或远程的INI文件内容。 例如: const xhr = new XMLHttpRequest(); xhr.open(‘GET’, ‘/path/to/file.ini…

    JavaScript 2023年5月27日
    00
  • Javascript中的数学函数

    Javascript中的数学函数 Javascript提供了许多数学函数可以在你的应用程序中使用,以下是常用的数学函数: Math.abs() Math.abs()函数返回一个数字的绝对值,即该数字的数值大小,忽略其正负号。 示例代码如下: Math.abs(-1); //结果为1 Math.abs(2); //结果为2 Math.abs(-2.5); //…

    JavaScript 2023年5月18日
    00
  • 转换json格式的日期为Javascript对象的函数

    转换JSON格式的日期为Javascript对象的函数一般使用JSON.parse()函数实现。在JSON字符串中,日期被表示为字符串并以ISO 8601日期格式给出,如下所示: "2021-09-13T08:57:23Z" 要将此日期转换为Javascript对象,可以按照以下步骤进行操作: 1.创建一个JSON字符串,包含一个带有日期…

    JavaScript 2023年5月27日
    00
  • javascript 数组排序函数sort和reverse使用介绍

    当我们需要对 JavaScript 数组进行排序时,可以使用数组排序函数 sort() 和 reverse()。本文将详细介绍这两个函数的使用方法。 sort() 函数 sort() 函数用于对数组进行排序,默认按照字母顺序排序,但也可以针对数字或其他数据类型进行排序。sort() 函数可接受一个排序函数作为参数,该函数将指定排序方式。 以下是一些常见的排序…

    JavaScript 2023年5月27日
    00
  • 浅谈Javascript编程风格

    浅谈Javascript编程风格 Javascript编程风格对于代码的可读性和可维护性具有至关重要的影响。本篇文章将介绍一些遵循良好Javascript编程规范的方法和技巧,以及如何避免一些常见的问题。 变量与常量 Javascript中的变量和常量都是松散类型,但是我们建议使用let和const来定义变量和常量。同时,尽可能避免使用全局变量和常量,并根据…

    JavaScript 2023年5月18日
    00
  • layui 表单标签的校验方法

    请看下面的攻略,包含了layui 表单标签的校验方法的详细讲解和示例说明。 layui 表单标签的校验方法 什么是layui表单标签的校验方法 layui是一套基于jQuery的前端UI框架,它提供了一种方法来简化表单的验证功能。 其中,layui.form提供了大量表单组件,并且封装了常用的表单验证规则和方法。我们只需要调用layui的基础方法,就可以完成…

    JavaScript 2023年6月10日
    00
  • 基于BootStrap与jQuery.validate实现表单提交校验功能

    下面我将为您详细讲解如何基于BootStrap和jQuery.validate实现表单提交校验功能。 1. 引入必要的库和样式文件 在页面中引入BootStrap和jQuery库和样式文件,以及jQuery.validate插件,例如: <!– 引入BootStrap样式文件 –> <link rel="stylesheet&…

    JavaScript 2023年6月10日
    00
合作推广
合作推广
分享本页
返回顶部