JavaScript之通过勾股定理计算苹果菜单效果
从安 2019-06-21 来源 : 阅读 1556 评论 0

摘要:本篇文章主要讲述JavaScript之通过勾股定理计算苹果菜单效果,希望阅读本篇文章以后大家有所收获,帮助大家对相关内容的理解更加深入。

本篇文章主要讲述JavaScript之通过勾股定理计算苹果菜单效果,希望阅读本篇文章以后大家有所收获,帮助大家对相关内容的理解更加深入。

 

JavaScript之通过勾股定理计算苹果菜单效果

JS原生苹果菜单效果

 

知识点:
勾股定理 a²+b²=c²

Event 是一个事件对象,当一个事件发生后,和当前事件发生相关的详细信息会被临时存储到一个指定的地方,也就是event对象,以方便我们在需要的时候调用

 

难点:
计算

#box {
        width: 100%;
        position: absolute;
        text-align: center;
        bottom: 0;
    }
    
    #box img {
        width: 60px;
    }
html结构:
<input type="text">
    <input type="text">
    <input type="text">
    <input type="text">
    <input type="text">
 
    <div id="box">
        <img src="./images/1.png" alt="">
        <img src="./images/2.png" alt="">
        <img src="./images/3.png" alt="">
        <img src="./images/4.png" alt="">
        <img src="./images/5.png" alt="">
    </div>
window.onload = function() {
        var input = document.getElementsByTagName('input');
        var oBox = document.getElementById('box');
        var oImg = oBox.children;
        // console.log(oImg);
        document.onmousemove = function(even) {
            var even = even || window.event;
            var x;
            var y;
            for (var i = 0; i < oImg.length; i++) {
                //获取图片的中心点
                x = oImg[i].offsetLeft + oImg[i].offsetWidth / 2;
                y = oImg[i].offsetTop + oBox.offsetTop + oImg[i].offsetHeight / 2;
 
                //鼠标在浏览器坐标的x轴距图片x中心点距离
                var a = even.clientX - x;
                //鼠标在浏览器坐标的y轴距图片y中心点距离
                var b = even.clientY - y;
 
                //勾股定理a²+b²=c²
                var c = Math.sqrt(Math.pow(b, 2) + Math.pow(a, 2))
 
                //scale 表示放大比例
                var scale = 1 - c / 300;
 
                if (scale < 0.5) {
                    scale = 0.5;
                }
 
                //每张图片的c赋值到input中,方便查看数据变化
                input[i].value = scale;
 
                oImg[i].style.width = scale * 100 + "px";
                oImg[i].style.height = scale * 100 + "px";
            }
        };
    };

 

本文由职坐标整理发布,学习更多的相关知识,请关注职坐标IT知识库!

本文由 @从安 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved