Javascript 仿苹果导航菜单

  使用 Javascript 制作的仿苹果导航菜单,当鼠标移过时,使用勾股定理计算当前鼠标所在位置和图片中心点的距离,并且用一个 scale变量 来存储触发缩放的位置,距离越近,scale值越接近1,图片也就越大,这里需要注意的是当 scale的值小于0.5时,应该让它一直等于0.5,不然图片会随着鼠标距离图片中心的距离越远,图片越小甚至消失。

效果如下:

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>苹果导航菜单</title>
 6     <style type="text/css">
 7         body{
 8             margin: 0;
 9         }
10         #div1{
11             width: 100%;
12             position: absolute;
13             bottom: 0;
14             text-align: center;
15         }
16         #div1 img {
17             cursor: pointer;
18         }
19     </style>
20     <script type="text/javascript">
21         window.onload=function(){
22             document.onmousemove=function(ev){
23                 var oEvent=ev||event;
24                 var oDiv=document.getElementById(‘div1‘);
25                 var aImg=document.getElementsByTagName(‘img‘);
26                 for(var i=0;i<aImg.length;i++){
27                     // 先使用勾股定理求出鼠标和图片中心点的距离
28                     // 图片中心为图片左/上边距加自身宽/高一半
29                     var x=aImg[i].offsetLeft+aImg[i].offsetWidth/2;//offsetLeft是相对父级的,此时父级是div
30                     var y=aImg[i].offsetTop+oDiv.offsetTop+aImg[i].offsetHeight/2;
31                     var a=x-oEvent.clientX;
32                     var b=y-oEvent.clientY;
33                     var dis=Math.sqrt(a*a+b*b);
34                     //dis/300的300 是 当前鼠标位置与图片中心点距离的总和 的二倍,如果想要在离图片更远/近的地方缩放图片,就改变这个数值大小
35                     var scale = 1-dis/300;
36                     if(scale<0.5){
37                         scale=0.5;
38                     }
39                     aImg[i].width=scale*128;//128px是图片原本最大的宽
40                 }
41             }
42         }
43     </script>
44 </head>
45 <body>
46     <div id="div1">
47         <img src="images/1.png" width="64">
48         <img src="images/2.png" width="64">
49         <img src="images/3.png" width="64">
50         <img src="images/4.png" width="64">
51         <img src="images/5.png" width="64">
52     </div>
53 </body>
54 </html>

原文地址:https://www.cnblogs.com/blue-guapi/p/9689468.html

时间: 2024-11-05 13:34:18

Javascript 仿苹果导航菜单的相关文章

5.JavaScript优化及导航菜单背后的秘密

JavaScript优化及导航菜单背后的秘密 伍星 学习目标1.进一步了解前端优化 学习如何编写良好的 JavaScirpt2.通过导航的学习,了解JavaScirpt的应用 JavaScript在用户体验优化的实现中起着至关重要的作用3.前端开发相关的工具和手段了解 了解JavaScript开发相关的工具和手段 目录 CONTENTS1 回顾:HTML语义.CSS高级2 编写高效的 JavaScript3 认识导航菜单及其开发4 导航菜单的性能加速5 破解牛X导航菜单的秘密5 JS的调试.压缩

Javascript导航菜单13则

来源:http://www.noupe.com/ajax/13-awesome-java-script-css-menu.html翻译:http://parandroid.com下面为你准备了13个利用Javascript实现的网页导航菜单 1) Sexy Sliding Menu- 基于mootools的Javascript网页导航菜单,漂亮的滑动门技术,看到下面的图了没有,用它来设计你的Sidebar,非常之炫,Sexy,是的. Demo: Mootols VersionDemo: Scri

仿苹果电脑任务栏菜单&amp;&amp;拼图小游戏&amp;&amp;模拟表单控件

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-

CSS JavaScript仿天猫侧边网页菜单

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Typ

MDNavBarView下拉导航菜单(仿美团导航下拉菜单)

说到下拉导航菜单这个东西用得还真不少,细心算一下做开发以来这样的菜单已经写了第三次了,但基本都是不能复用.感觉特累人.不经意看到同事写一个类似的下拉菜单,但他引用了开源库仿大众菜单的库,大致看了一下,感觉挺不错的,复用性也比较好,但要 是换成别的样式就要去修改代码了,感觉这有点不方便也比较容易出错.于是参照他的大致思路写了一个仿下拉菜单. 具体的实现就不多说了,觉得有意思的话可以下来看看.下面说一下使用方法吧: 1.添加navbarview包下的代码与对应资源 2.布局文件中添加: <com.m

导航菜单滑动动画

用jquery实现百度新闻导航菜单滑动动画 前言 前两天,群里有人问百度新闻导航是如何实现的,当时由于忙于工作,没有来得及细看,恰好今天有空闲时间,索性就实现一下这个效果吧: 思路与步骤 1.利用UL创建简单横向导航: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&g

利用jquery实现百度新闻导航菜单滑动动画

前言 前两天,群里有人问百度新闻导航是如何实现的,当时由于忙于工作,没有来得及细看,恰好今天有空闲时间,索性就实现一下这个效果吧: 思路与步骤 1.利用UL创建简单横向导航: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns=&quo

Angular+Bootstrap3导航菜单

Angular+Bootstrap3导航菜单 AngularJS体验式编程系列文章,将介绍如何用angularjs构建一个强大的web前端系统.angularjs是由Google团队开发的一款非常优秀web前端框架.在当前如此多的web框架下,angularjs能脱颖而出,从架构设计上就高人一等,双向数据绑定,依赖注入,指令,MVC,模板.Angular.js创新地把后台技术融入前端开发,扫去jQuery一度的光芒.用angularjs就像写后台代码,更规范,更结构化,更可控. 关于作者 张丹(

MVC+Bootstrap 企业通用框架搭建--左侧导航菜单的实现--导航菜单的增删改查(3)

补充上面的点击菜单表信息: using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks; namespace SqlServer.Entity{ public class Menu_Operation { private int _operation_id; public int Operation_id { get { return