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

yizhihongxing

以下是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日

相关文章

  • JavaScript给数组添加元素的6个方法

    下面是详细讲解“JavaScript给数组添加元素的6个方法”的完整攻略。 1. 直接赋值 通过直接赋值的方式,可以给数组添加新的元素。示例如下: const arr = [1, 2, 3] // 定义一个数组 arr[3] = 4 // 直接给数组添加一个元素 console.log(arr) // [1, 2, 3, 4] 这种方式比较简单,但有一个问题…

    JavaScript 2023年5月27日
    00
  • 如何用javascript正则表达式验证身份证号码是否合法

    以下是使用 JavaScript 正则表达式验证身份证号码是否合法的攻略,包含了具体步骤和两条示例: 1. 正则表达式模式 身份证号的验证可以使用正则表达式来实现,身份证号具有一定的规则,我们可以写出相应的正则表达式模式来匹配这些规则。 身份证号码的验证规则如下: 长度为18位; 前17位均为数字; 第18位可以是数字,也可以是大写字母X。 因此,我们可以使…

    JavaScript 2023年5月19日
    00
  • js+css实现文字散开重组动画特效代码分享

    下面给出“js+css实现文字散开重组动画特效”的完整攻略。 原理说明 该特效的实现需要使用到CSS 的 transform 属性来进行文字的位移、旋转等操作。同时,通过JS 中的事件绑定实现触发动画效果。 首先将文字拆分为单个的字体元素 随后,通过JS 代码将单个的字体元素进行位置、旋转等方面的定义 当触发动画效果时,JS 代码随机分配位置和角度等属性,并…

    JavaScript 2023年6月10日
    00
  • js取滚动条的尺寸的函数代码

    JavaScript取得滚动条的尺寸通常需要创建一个函数,以下为具体的实现方式: 创建获取滚动条尺寸的函数 function getScrollWidth() { var div = document.createElement(‘div’); // 设置样式,避免在计算尺寸时产生影响 div.style.width = ‘100px’; div.style…

    JavaScript 2023年6月11日
    00
  • 在JS中如何把毫秒转换成规定的日期时间格式实例

    为了将毫秒转化为规定格式的日期时间,我们需要使用JavaScript中内置的Date对象以及Date对象自带的各种方法,下面是具体的攻略。 一、使用Date对象的toLocaleString()方法 最简单的将毫秒转化为规定格式的日期时间的方法是使用Date对象的toLocaleString()方法。这个方法可以根据用户的本地时间格式自动将时间转化为字符串。…

    JavaScript 2023年5月27日
    00
  • 借助script进行Http跨域请求:JSONP实现原理及代码

    下面是“借助script进行Http跨域请求:JSONP实现原理及代码”的完整攻略。 什么是JSONP? JSONP是一种解决跨域请求的方法,其原理是利用标签的src属性不受同源策略的限制来实现跨域请求。在JSONP中,客户端通过动态创建script标签,向服务端发送一个请求,并指定一个回调函数的名称。服务端接收到请求后,将数据作为参数传递给指定的回调函数,…

    JavaScript 2023年5月27日
    00
  • 将string解析为json的几种方式小结

    让我们详细讲解一下如何将字符串解析为JSON的几种方式。 使用JSON库解析字符串 目前市面上有很多种JSON库可供选择,比如jsoncpp、rapidjson等。我们以jsoncpp为例进行讲解。 步骤一:引入头文件 #include <json/json.h> 步骤二:将字符串解析为JSON格式 std::string str = &quot…

    JavaScript 2023年5月27日
    00
  • 深入理解JSON数据源格式

    深入理解JSON数据源格式 什么是JSON? JSON是JavaScript Object Notation的缩写,它是一种轻量级的数据交换格式,易于理解和使用。它基于一种JavaScript子集,但考虑到其实际用途,它是一种独立于语言的数据格式。JSON格式是一种键值对的数据结构,它采用Unicode字符集。 JSON的基本语法 JSON数据格式由两个大括…

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