基于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 相关文章推荐
jQuery之ajax删除详解
Feb 27 Javascript
Javascript非构造函数的继承
Apr 27 Javascript
javascript中mouseover、mouseout使用详解
Jul 19 Javascript
jQuery实现点击按钮弹出可关闭层的浮动层插件
Sep 19 Javascript
异步加载JS、CSS代码(推荐)
Jun 15 Javascript
运用js教你轻松制作html音乐播放器
Apr 17 Javascript
js实现页面刷新滚动条位置不变
Nov 27 Javascript
微信小程序登录态控制深入分析
Apr 12 Javascript
Vue修改项目启动端口号方法
Nov 07 Javascript
JS内置对象和Math对象知识点详解
Apr 03 Javascript
浅谈JavaScript中this的指向更改
Jul 28 Javascript
Vue v-for中的 input 或 select的值发生改变时触发事件操作
Aug 31 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
PHP连接SQL Server的方法分析【基于thinkPHP5.1框架】
2019/05/06 PHP
jQuery 前的按键判断代码
2010/03/19 Javascript
如何让DIV可编辑、可拖动示例代码
2013/09/18 Javascript
javascript中解析四则运算表达式的算法和示例
2014/08/11 Javascript
javascript实现通过表格绘制颜色填充矩形的方法
2015/04/21 Javascript
jQuery插件制作之全局函数用法实例
2015/06/01 Javascript
使用JQuery中的trim()方法去掉前后空格
2016/09/16 Javascript
javascript实现无法关闭的弹框
2016/11/27 Javascript
微信小程序开发入门基础教程
2017/04/19 Javascript
详解vue服务端渲染(SSR)初探
2017/06/19 Javascript
JS运动改变单物体透明度的方法分析
2018/01/23 Javascript
用node-webkit把web应用打包成桌面应用(windows环境)
2018/02/01 Javascript
angular项目中bootstrap-datetimepicker时间插件的使用示例
2018/03/15 Javascript
微信小程序实现滴滴导航tab切换效果
2018/07/24 Javascript
JavaScript捕捉事件和阻止冒泡事件实例分析
2018/08/03 Javascript
解决layui数据表格排序图标被超出的表头挤出去的问题
2019/09/19 Javascript
Vue项目打包压缩的实现(让页面更快响应)
2020/03/10 Javascript
vue和H5 draggable实现拖拽并替换效果
2020/07/29 Javascript
Python 命令行非阻塞输入的小例子
2013/09/27 Python
一步步解析Python斗牛游戏的概率
2016/02/12 Python
总结用Pdb库调试Python的方式及常用的命令
2016/08/18 Python
flask中主动抛出异常及统一异常处理代码示例
2018/01/18 Python
python 内置模块详解
2019/01/01 Python
Django组件cookie与session的具体使用
2019/06/05 Python
Python Sympy计算梯度、散度和旋度的实例
2019/12/06 Python
python 连续不等式语法糖实例
2020/04/15 Python
Mytheresa英国官网:拥有160多个奢侈品品牌
2016/10/09 全球购物
来自美国主售篮球鞋的零售商店:KICKSUSA
2017/11/28 全球购物
Unineed旗下时尚轻奢网站:FABHunt
2019/05/13 全球购物
个人求职简历的自我评价
2013/10/19 职场文书
适用于所有创业者的创业计划书
2014/02/05 职场文书
教师节促销方案
2014/03/22 职场文书
2014小学数学教研组工作总结
2014/12/06 职场文书
综合管理员岗位职责
2015/02/11 职场文书
Flask搭建一个API服务器的步骤
2021/05/28 Python
python实现手机推送 代码也就10行左右
2022/04/12 Python