原生js实现苹果菜单效果

news/2024/7/19 13:54:01 标签: js

主要用到的知识点

Math.pow(a,b);//a的b次方

Math.sqrt(a);//a的开方

其他的并不难,直接上代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>苹果菜单练习</title>
    <style>
        #box{width:100%; height:auto; position:absolute; bottom:0; text-align:center;}
        #box img{width:64px; height:64px;}
    </style>
</head>
<body>
<div id="box">
    <img src="images/1.png"/>
    <img src="images/2.png"/>
    <img src="images/3.png"/>
    <img src="images/4.png"/>
    <img src="images/5.png"/>
</div>
<script>
    var oDiv = document.getElementById('box');
    var aImg = oDiv.getElementsByTagName('img');
    var arr=[];
    for(var i=0; i<aImg.length; i++){
       arr.push([(aImg[i].offsetLeft+1/2*aImg[i].offsetWidth),(1/2*aImg[i].offsetHeight+getTop(aImg[i]))]);
    }//将每个图片的中心点的位置存放在数组中
    document.onmousemove = function(ev){
        var ev = ev||event;
        var L = ev.clientX;
        var T = ev.clientY;
        for(var i=0; i<aImg.length; i++){
            var a  = Math.pow((arr[i][0] - L),2);//鼠标的位置与对应图片的中心点之间水平距离的平方
            var b = Math.pow((arr[i][1] -T),2 );//鼠标位置与对应图片中心点之间垂直距离的平方
            var c = Math.sqrt(b+a);//鼠标到图片中心点的距离
          
            var scare = 1 - c/300;//计算出缩放比例
            if(scare<0.5){
                scare = 0.5;
            }
            aImg[i].style.width = 128*scare +'px';
            aImg[i].style.height = 128*scare +'px';
        }

    }
    function getTop(obj){//获取元素到body顶部的距离
        var iTop = 0;
        while(obj){
            iTop += obj.offsetTop;
            obj = obj.offsetParent;
        }
        return iTop;
    }
</script>
</body>
</html>


http://www.niftyadmin.cn/n/952179.html

相关文章

转:.net面试题及答案(一)

1:a10,b15&#xff0c;在不用第三方变题的前提下&#xff0c;把a,b的值互换2&#xff1a;已知数组int[] max{6,5,2,9,7,4,0};用快速排序算法按降序对其进行排列&#xff0c;并返回数组3&#xff1a;请简述面向对象的多态的特性及意义&#xff01;4&#xff1a;session喜欢丢值且…

python点击按钮弹出新窗口_PyQt5点击button如何弹出新窗口?

-- coding: utf-8 --import sysfrom PyQt5.QtWidgets import *from PyQt5.QtCore import *class FirstWindow(QWidget):close_signal pyqtSignal()def __init__(self, parentNone):# super这个用法是调用父类的构造函数,parentNone表示默认没有父Widget,如果有则调用之super(F…

原生js模仿京东图片放大镜效果

实现放大镜效果&#xff0c;是需要两张图片&#xff0c;记得两张图片的比例要保持一致哦 嗯&#xff0c;挺简单的&#xff0c;所以直接上代码喽&#xff0c;有不懂的可以评论区留言哦 <!DOCTYPE html> <html lang"en"> <head><meta charset&quo…

原生js实现照片墙的效果(拖拽图片与另一张图片交换位置)

用到的功能有&#xff1a; 布局转换&#xff08;将float布局转换为定位布局&#xff09;图片拖拽效果的实现碰撞检测计算两点之间的斜线距离找最小值 具体的实现在代码中我都有注释&#xff0c;嗯&#xff0c;直接上代码。 注&#xff1a;这里还需要有一个运动框架&#xff0c;…

天气预报apipython_获取天气预报API

执行结果详细参数city #城市信息cod #内部参数cnt #预测天数list #信息列表&#xff0c;主要获取weatherData---weather---main和description信息message #内部参数# -*- coding: utf-8 -*-#! python3# quickWeather.py - Prints the current weather for a location from the …

转:c#面试题

2 .列举ASP.NET 页面之间传递值的几种方式。 答. 1).使用QueryString, 如....?id1; response. Redirect().... 2).使用Session变量 3).使用Server.Transfer 3. 一列数的规则如下: 1、1、2、3、5、8、13、21、34...... 求第30位数是多少&a…

如何避免鼠标移入子级触发父级的移出事件(两种方法)

我们经常会遇到一个问题&#xff0c;我们使用onmouseover和onmouseout控制鼠标的的移入移出时&#xff0c;如果是将鼠标从父级移动到子级的时候&#xff0c;会触发子级的冒泡事件&#xff0c;导致父级先触发移出事件后立即触发移入事件&#xff0c;在IE下效果不是特别好&#x…

游标中LOCAL的意思

SQL SERVER 2000 中使用游标 在开发的过程中我们通常都会使用游标来处理数据库中的信息&#xff0c;但是我们所写的代码往往就下面的例子一样&#xff1a;DECLAREmyCursor CURSORFORSELECT… FROMTABLEOPENmyCursor--do somethingCLOSEmyCursorDEALLOCATEmyCursor这段代码存在着…