基于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中遭遇级联表达式陷阱
Mar 08 Javascript
javascript之大字符串的连接的StringBuffer 类
May 08 Javascript
JS基础之undefined与null的区别分析
Aug 08 Javascript
js获取图片大小的函数代码
Sep 20 Javascript
jquery实现鼠标拖动图片效果示例代码
Jan 09 Javascript
jquery无刷新验证邮箱地址实现实例
Feb 19 Javascript
jQuery获取cookie值及删除cookie用法实例
Apr 15 Javascript
jQueryUI中的datepicker使用方法详解
May 25 Javascript
纯js实现动态时间显示
Sep 07 Javascript
JS+canvas实现的五子棋游戏【人机大战版】
Jul 19 Javascript
基于 Vue 的树形选择组件的示例代码
Aug 18 Javascript
Element Popover 弹出框的使用示例
Jul 26 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
将二维数组转为一维数组的2种方法
2014/05/26 PHP
浅谈PHP表单提交(POST&amp;GET&amp;URL编/解码)
2017/04/03 PHP
Laravel路由研究之domain解决多域名问题的方法示例
2019/04/04 PHP
PHP从零开始打造自己的MVC框架之入口文件实现方法详解
2019/06/03 PHP
php 多继承的几种常见实现方法示例
2019/11/18 PHP
php 使用expat方式解析xml文件操作示例
2019/11/26 PHP
jquery 表单下所有元素的隐藏
2009/07/25 Javascript
JavaScript 变量命名规则
2009/09/23 Javascript
30个最好的jQuery 灯箱插件分享
2011/04/25 Javascript
jQuery对象的selector属性用法实例
2014/12/27 Javascript
jQuery动画与特效详解
2015/02/01 Javascript
Jquery揭秘系列:ajax原生js实现详解(推荐)
2016/06/08 Javascript
jQuery实现的无限级下拉菜单功能示例
2016/09/12 Javascript
最全面的JS倒计时代码
2016/09/17 Javascript
Javascript获取图片原始宽度和高度的方法详解
2016/09/20 Javascript
web前端开发中常见的多列布局解决方案整理(一定要看)
2017/10/15 Javascript
JS实现select选中option触发事件操作示例
2018/07/13 Javascript
vue.js实现的全选与全不选功能示例【基于elementui】
2018/12/03 Javascript
全网小程序接口请求封装实例代码
2020/11/06 Javascript
javascript实现倒计时关闭广告
2021/02/09 Javascript
Python中使用摄像头实现简单的延时摄影技术
2015/03/27 Python
python获取局域网占带宽最大3个ip的方法
2015/07/09 Python
Python3利用print输出带颜色的彩色字体示例代码
2019/04/08 Python
Python如何自动获取目标网站最新通知
2020/06/18 Python
PyCharm配置anaconda环境的步骤详解
2020/07/31 Python
ffmpeg+Python实现B站MP4格式音频与视频的合并示例代码
2020/10/21 Python
Canvas获取视频第一帧缩略图的实现
2020/11/11 HTML / CSS
Spartoo葡萄牙鞋类网站:线上销售鞋履与时尚配饰
2017/01/11 全球购物
欧洲最大的拼图游戏商店:JigsawPuzzle.co.uk
2018/07/04 全球购物
写给女朋友的检讨书
2014/01/28 职场文书
家长会欢迎标语
2014/06/24 职场文书
我们的节日元宵活动方案
2014/08/23 职场文书
公务员党的群众路线教育实践活动学习心得体会
2014/10/30 职场文书
2014年工程部工作总结
2014/11/25 职场文书
2015年小班保育员工作总结
2015/05/27 职场文书
2016年艾滋病宣传活动总结
2016/04/01 职场文书