使用JavaScript 中的Math对象和勾股定理公式,计算鼠标的位置与页面图片中心点的距离,根据距离对页面上的图片进行放大或缩小处理。距离远时图片放大,距离近时图片缩小

简介: 使用JavaScript 中的Math对象和勾股定理公式,计算鼠标的位置与页面图片中心点的距离,根据距离对页面上的图片进行放大或缩小处理。距离远时图片放大,距离近时图片缩小

需求说明:

使用JavaScript 中的Math对象和勾股定理公式,计算鼠标的位置与页面图片中心点的距离,根据距离对页面上的图片进行放大或缩小处理。距离远时图片放大,距离近时图片缩小


随着鼠标的移动,实时计算鼠标与图片中心点的距离,在输入框中显示图片的缩放系数

放大倍数不超过3 倍,缩小不小于50%


56.png


实现思路:


  1. 在页面上编写输入框用于显示缩放系数,并使用<img>标签显示一幅图片
  2. 获取图片中心点的坐标
  3. 获取鼠标移动时的坐标
  4. 使用勾股定理计算出鼠标与图片中心点之间的距离
  5. 将距离转换为缩放系数并显示在输入框中
  6. 根据缩放系数改变<img> 标签的宽度和高度


实现代码:


<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title></title>
    <style type="text/css">
      #div{
        width: 100%;
        position: absolute;
        bottom: 0;
        text-align: center;
      }
      img{
        width: 300px;
          height: 150px;
        }
      input{
        text-align: center;
        position: absolute;
      }
    </style>
  </head>
  <body>
    <script type="text/javascript">
      window.onload=function(){
        var input=document.getElementById("input");
        var div=document.getElementById("div");
        var img=document.getElementById("img");
        window.onmousemove=function(){
          var x=img.offsetLeft + img.offsetWidth/2;
          console.log(x)
          var y=img.offsetTop + img.offsetHeight/2;
          console.log(y)
          var b=event.clientX-x;
          var a=event.clientY-y;
          var c=Math.sqrt(Math.pow(b,2)+Math.pow(a,2));
          var scale=Math.floor(c)/100-1;
          if (scale<0.5) {
            scale=0.5;
          } else if(scale>3){
            scale=3;
          }
          input.value=scale;
          img.style.width=scale*300+"px";
          img.style.height=scale*150+"px";
        };
      };
    </script>
    <p>图片缩放系数:<input type="text" id="input"/></p>
    <div id="div">
      <img src="img/img_1.jpg"  id="img"/>
    </div>
  </body>
</html>
相关文章
|
2月前
|
JavaScript 前端开发 程序员
前端原生Js批量修改页面元素属性的2个方法
原生 Js 的 getElementsByClassName 和 querySelectorAll 都能获取批量的页面元素,但是它们之间有些细微的差别,稍不注意,就很容易弄错!
|
24天前
|
JavaScript 容器
带方向感知功能的js图片遮罩层插件
带方向感知功能的js图片遮罩层插件
|
2月前
|
数据采集 存储 监控
实现自动化数据抓取:使用Node.js操控鼠标点击与位置坐标
本文介绍了如何使用Node.js和Puppeteer实现自动化数据抓取,特别是针对新闻网站“澎湃新闻”。通过设置代理IP、User-Agent和Cookie,提高爬虫的效率和隐蔽性,避免被网站封锁。代码示例展示了如何模拟鼠标点击、键盘输入等操作,抓取并整理新闻数据,适用于需要规避IP限制和突破频率限制的场景。
114 10
|
2月前
|
JavaScript
JS鼠标框选并删除HTML源码
这是一个js鼠标框选效果,可实现鼠标右击出现框选效果的功能。右击鼠标可拖拽框选元素,向下拖拽可实现删除效果,简单实用,欢迎下载
49 4
|
2月前
|
JavaScript 前端开发 图形学
JavaScript 中 Math 对象常用方法
【10月更文挑战第29天】JavaScript中的Math对象提供了丰富多样的数学方法,涵盖了基本数学运算、幂运算、开方、随机数生成、极值获取以及三角函数等多个方面,为各种数学相关的计算和处理提供了强大的支持,是JavaScript编程中不可或缺的一部分。
|
3月前
|
Web App开发 前端开发 JavaScript
JavaScript动态渲染页面爬取——Selenium的使用(一)
JavaScript动态渲染页面爬取——Selenium的使用(一)
85 4
|
2月前
|
JavaScript 前端开发 开发者
|
3月前
|
Web App开发 数据采集 JavaScript
JavaScript动态渲染页面爬取——Selenium的使用(二)
JavaScript动态渲染页面爬取——Selenium的使用(二)
116 2
|
3月前
|
JavaScript 前端开发 API
JavaScript全屏,监听页面是否全屏
JavaScript全屏,监听页面是否全屏
73 0
|
2月前
|
JavaScript 前端开发
JavaScript中的原型 保姆级文章一文搞懂
本文详细解析了JavaScript中的原型概念,从构造函数、原型对象、`__proto__`属性、`constructor`属性到原型链,层层递进地解释了JavaScript如何通过原型实现继承机制。适合初学者深入理解JS面向对象编程的核心原理。
38 1
JavaScript中的原型 保姆级文章一文搞懂