基于JQuery模仿苹果桌面的Dock效果(初级版)


Posted in Javascript onOctober 15, 2012

新的一天新的开始,今天要分享的是用JQuery模仿苹果操作系统桌面的Dock效果,之所以称之为初级版,是因为其中还有一些bug,显示效果并不稳定。由于时间的关系,这些bug还没有修复,希望高手们不吝赐教,提出更好的意见,希望可以做出更好的版本分享给大家。

这是静态的效果图,好吧,看上去还想模像样

基于JQuery模仿苹果桌面的Dock效果(初级版)

下面是HTML页面的代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" 
"http://www.w3.org/TR/html4/strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" lang="en"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>JQueryProject1</title> 
<meta name="author" content="Frank_Ren" /> 
<link type="text/css" rel="stylesheet" href="css/myCSS.css" /> 
<script type="text/javascript" src="js/jquery-1.4.2.js"></script> 
<script type="text/javascript" language="JavaScript" src="js/myJSFile.js"></script> 
<!-- Date: 2012-09-17 --> 
</head> 
<body> 
<div id="topBody" align="center"> 
<p id="topMenu" align="center"> 
<img alt="Home" src="images/home.png" /> 
<img alt="Music" src="images/music.png" /> 
<img alt="Calendar" src="images/calendar.png" /> 
<img alt="Email" src="images/email.png" /> 
<img alt="Portfolio" src="images/portfolio.png" /> 
<img alt="Video" src="images/video.png" /> 
<img alt="Link" src="images/link.png" /> 
<img alt="History" src="images/history.png" /> 
<img alt="RSS" src="images/rss.png" /> 
</p> 
</div> 
</body> 
</html>

没有CSS装饰的页面那叫一个惨不忍睹,所以使用适当的CSS进行装饰是必不可少的
#topBody{ 
height: 300px; 
} 
#topMenu{ 
height: 256px; 
line-height: 256px; 
} 
#topMenu img{ 
height: 50px; 
width: 50px; 
}

才毕业几个月,解方程都忘记了,所以当鼠标移动时图标的放大算法让我很头疼啊,这里给出的算法只是个人想法,仅供参考,希望各位高手提出更好的算法。而且这里只考虑了鼠标在水平位置移动时的算法,还没有加入鼠标垂直移动式的算法。
$(function(){ 
$("#topBody").mousemove(function(e){ 
var mouseX = parseInt(e.pageX); 
$("#topMenu img").each(function(){ 
var obj = $(this); 
var objWidth = obj.css("width"); 
//获取图片中心水平坐标 
var objX = parseInt(obj.offset().left) + parseInt(objWidth.substr(0,objWidth.length-2))/2; 
var x = Math.abs(objX-mouseX); 
if(x<75 && x>-75){ 
obj.css("width",(128-((78*x*x)/(75*75)))+"px"); 
obj.css("height",(128-((78*x*x)/(75*75)))+"px"); 
} 
}); 
}); 
});

说说JQuery获取鼠标的方法,当执行mousemove(function(e){})这个方法是,方法的参数e提供了e.pageX获取水平坐标、e.pageY获取垂直坐标,同时也可以使用var x = e.originalEvent.x || e.originalEvent.layerX || 0;获取鼠标的水平位置、同样可以用 var y = e.originalEvent.y || e.originalEvent.layerY || 0;获取鼠标的垂直位置。

 

基于JQuery模仿苹果桌面的Dock效果(初级版)

当鼠标移动速度比较慢时显示效果还可以接受,不过当鼠标快速移动时时图标是放大了,不过相应的bug也出来了。

基于JQuery模仿苹果桌面的Dock效果(初级版)

恳请各位走过路过的高手、大神们,提出宝贵的修改意见及更好的算法,谢谢观赏。

Javascript 相关文章推荐
记录几个javascript有关的小细节
Apr 02 Javascript
[原创]用javascript实现检测指定目录是否存在的方法
Jan 12 Javascript
在新窗口打开超链接的方法小结
Apr 14 Javascript
关于include标签导致js路径找不到的问题分析及解决
Jul 09 Javascript
JavaScript基于setTimeout实现计数的方法
May 08 Javascript
js实现带有介绍的Select列表菜单实例
Aug 18 Javascript
javascript中判断json的方法总结
Aug 27 Javascript
Three.js基础学习之场景对象
Sep 27 Javascript
使用ECharts实现状态区间图
Oct 25 Javascript
浅谈Angular单元测试总结
Mar 22 Javascript
JS浮点数运算结果不精确的Bug解决
Aug 01 Javascript
JS回调函数简单易懂的入门实例分析
Sep 29 Javascript
JS自动缩小超出大小的图片
Oct 12 #Javascript
文本框input聚焦失焦样式实现代码
Oct 12 #Javascript
poshytip 基于jquery的 插件 主要用于显示微博人的图像和鼠标提示等
Oct 12 #Javascript
innerHTML与jquery里的html()区别介绍
Oct 12 #Javascript
jquery聚焦文本框与扩展文本框聚焦方法
Oct 12 #Javascript
Jquery index()方法 获取相应元素索引值
Oct 12 #Javascript
分享一道笔试题[有n个直线最多可以把一个平面分成多少个部分]
Oct 12 #Javascript
You might like
phpStorm+XDebug+chrome 配置详解
2019/04/01 PHP
jquery 事件对象属性小结
2010/04/27 Javascript
一段批量给页面上的控件赋值js
2010/06/19 Javascript
理解Javascript_13_执行模型详解
2010/10/20 Javascript
JavaScript打印iframe内容示例代码
2013/08/20 Javascript
动态添加option及createElement使用示例
2014/01/26 Javascript
Jquery EasyUI中弹出确认对话框以及加载效果示例代码
2014/02/13 Javascript
jQuery标签编辑插件Tagit使用指南
2015/04/21 Javascript
JQuery页面地址处理插件jqURL详解
2015/05/03 Javascript
jquery计算鼠标和指定元素之间距离的方法
2015/06/26 Javascript
给before和after伪元素设置js效果的方法
2015/12/04 Javascript
JS封装的选项卡TAB切换效果示例
2016/09/20 Javascript
第一次接触Bootstrap框架
2016/10/24 Javascript
微信小程序 textarea 详解及简单使用方法
2016/12/05 Javascript
JS实现简单抖动效果
2017/06/01 Javascript
Vue数组更新及过滤排序功能
2017/08/10 Javascript
构建Vue大型应用的10个最佳实践(小结)
2019/11/07 Javascript
基于vue.js实现购物车
2020/01/15 Javascript
vue 授权获取微信openId操作
2020/11/13 Javascript
[54:53]2014 DOTA2国际邀请赛中国区预选赛 LGD-GAMING VS CIS 第二场
2014/05/23 DOTA
python文件操作整理汇总
2014/10/21 Python
Python中用memcached来减少数据库查询次数的教程
2015/04/07 Python
python实现字符串和日期相互转换的方法
2015/05/13 Python
Python编程实现数学运算求一元二次方程的实根算法示例
2017/04/02 Python
Python try except异常捕获机制原理解析
2020/04/18 Python
Python 将 QQ 好友头像生成祝福语的实现代码
2020/05/03 Python
浅析HTML5 Landmark
2020/09/11 HTML / CSS
LN-CC中国:高端男装和女装的奢侈时尚目的地
2019/09/14 全球购物
应届生求职自荐信范文
2014/04/07 职场文书
《画杨桃》教学反思
2014/04/13 职场文书
超市开业庆典策划方案
2014/05/14 职场文书
大型会议策划方案
2014/05/17 职场文书
2014村书记党建工作汇报材料
2014/11/02 职场文书
2019奶茶店创业计划书范本!
2019/07/15 职场文书
python如何读取.mtx文件
2021/04/22 Python
Django集成富文本编辑器summernote的实现步骤
2021/05/31 Python