苹果导航菜单效果

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">
    body{margin: 0;}
    #div1{width: 100%; position: absolute; bottom: 0; text-align: center;}
    </style>
    <script type="text/javascript">
        document.onmousemove=function (ev){  //doument下的鼠标移动事件
            var oEvent=ev||event;  //获取事件对象,并做兼容处理
            var oDiv=document.getElementById('div1');
            var aImg=document.getElementsByTagName('img');  //获取所以图片集合
            var aTxt=document.getElementsByTagName('input'); //获取所有文本框集合
            var i=0;

            for(i=0; i<aImg.length; i++){
                var x=aImg[i].offsetLeft+oDiv.offsetLeft+aImg[i].offsetWidth/2; //加上这个图片的一半宽度定位在中心点上
                var y=aImg[i].offsetTop+oDiv.offsetTop+aImg[i].offsetHeight/2;  //加上这个图片的一半高度定位在中心点上
                //因为offsetLeft和offsetTop是取得距离父级的距离所以要加上oDiv距离页面的距离
                
                var a=x-oEvent.clientX;   //这个图片距离左侧的中心点坐标减去鼠标距离页面左侧的坐标
                var b=y-oEvent.clientY;   //这个图片距离顶部的中心点坐标减去鼠标距离页面顶部的坐标

                var dis=Math.sqrt(a*a+b*b);  //求得鼠标点距离图片中心点的距离 因为是一个直角三角形 求直角边也就是

                var scale=1-dis/300;  //求得需要缩放的比例 300是自定义的 可以根据不同的值得到的效果不一样
                                      //dis/300会得到一个两头大中间小的倍数 所有两边的图片就回放大
                                      //因为想要的效果是中间大两头小 所以要用1减去原先的倍数 得到想要的比例
                                      //求比例就需要用到除法
                if(scale<0.5){
                    scale=0.5;
                }
                //假如倍数过小的话 就是是图标消失 所以控制在0.5倍上

                aImg[i].width=scale*200;
                //让图片的宽度等于 倍数乘以最大宽度就会得到想要的宽度
                aTxt[i].value=scale.toFixed(2);
            }
        }
    </script>
</head>
<body>
    <input type="text"></input>
    <input type="text"></input>
    <input type="text"></input>
    <input type="text"></input>
    <input type="text"></input>
    <div id="div1">
        <img src="images/image01.jpg" width="100" />
        <img src="images/image02.jpg" width="100" />
        <img src="images/image03.jpg" width="100" />
        <img src="images/image04.jpg" width="100" />
        <img src="images/image05.jpg" width="100" />
    </div>
</body>
</html>

posted @ 2016-04-19 19:03  河北-齐哥  阅读(140)  评论(0编辑  收藏  举报