zoukankan      html  css  js  c++  java
  • 如何理解JavaScript用三角函数计算鼠标与多个目标点的距离

    这个东西理解起来可能有点抽象,下面会用代码和图片的方式帮助大家去更方便的理解。

    上图是我画的基本构思图

    下面是html结构

    <style type="text/css">
    			* {
    				margin: 0;
    				padding: 0;
    			}
    
    			#div1 {
    				 1200px;
    				height: 300px;
    				position: absolute;
    				left: 100px;
    				bottom: 0;
    				text-align: center;
    				border: #000000 5px solid;
    			}
    
    			.bg {
    				 600px;
    				height: 420px;
    				background-image: url(../image/0522/gg.png);
    				background-size: 600px 420px;
    				border: 1px solid #000000;
    			}
    
    			img {
    				 64px;
    			}
    		</style>
    
    <body>
    		<input type="text">
    		<input type="text">
    		<input type="text">
    		<input type="text">
    		<input type="text">
    		<br>
    		<div class="bg">
    
    		</div>
    		<div id="div1">
    			<img src="../image/0522/1.png">
    			<img src="../image/0522/2.png">
    			<img src="../image/0522/3.png">
    			<img src="../image/0522/4.png">
    			<img src="../image/0522/5.png">
    		</div>
    	</body>
    

    下面是js代码

    <script type="text/javascript">
    		// 利用的是勾股定理
    		var inputs = document.getElementsByTagName('input');
    		var oDiv = document.getElementById('div1');
    		var imgs = oDiv.getElementsByTagName('img');
    		document.onmousemove = function(event) {
    			var env = event || window.event;
    			for (var i = 0; i < imgs.length; i++) {
    				// 算出中心点的坐标
    				//元素到屏幕的距离+元素自身宽度的一半就可以获得中心点
    				let x = imgs[i].offsetLeft + imgs[i].offsetWidth / 2;
    				//offsetTop只能拿到图片从底部到自己的距离还要加上div1的距离
    				let y = imgs[i].offsetTop + imgs[i].offsetHeight / 2 + oDiv.offsetTop;
    				var b = env.clientX - x;
    				var a = env.clientY - y;
    				console.log(b, x, a, y)
    				var c = Math.sqrt(Math.pow(b, 2) + Math.pow(a, 2)) // 勾股定理 通过a边b边求c边的距离
    				// sscale 表示放大比例 
    				var scale = 1 - c / 300;
    				if (scale < 0.5) {
    					scale = 0.5;
    				}
    
    				inputs[i].value = scale;
    				/* 把设置好的缩放比例赋值给图片 */
    				imgs[i].style.width = scale * 128 + "px";
    				imgs[i].style.height = scale * 128 + "px";
    
    			}
    		}
    	</script>
    

    上面的代码就是利用勾股定理计算鼠标和斜边的距离来获得不同位置和鼠标的距离

  • 相关阅读:
    EasyUI datagrid动态加载json数据
    利用EasyUI combobox实现模糊搜索
    SQL动态拼接字符串生成分页存储过程
    JavaScript函数表达式
    JavaScript继承
    JavaScript创建对象的常用模式
    JavaScript引用类型
    JavaScript执行环境
    JavaScript变量及数据类型
    jackson序列化和反序列化Json
  • 原文地址:https://www.cnblogs.com/caominjie/p/10930295.html
Copyright © 2011-2022 走看看