基于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验证Checkbox是否选中的代码 推荐
Sep 04 Javascript
jQuery当鼠标悬停时放大图片的效果实例
Jul 03 Javascript
js仿微信语音播放实现思路
Dec 12 Javascript
HTML5canvas 绘制一个圆环形的进度表示实例
Dec 16 Javascript
前端常见跨域解决方案(全)
Sep 19 Javascript
AngularJS基于http请求实现下载php生成的excel文件功能示例
Jan 23 Javascript
Angularjs实现控制器之间通信方式实例总结
Mar 27 Javascript
Vue波纹按钮组件制作
Apr 30 Javascript
javascript数组常见操作方法实例总结【连接、添加、删除、去重、排序等】
Jun 13 Javascript
p5.js实现故宫橘猫赏秋图动画
Oct 23 Javascript
JS实现简易留言板(节点操作)
Mar 16 Javascript
JS中的变量作用域(console版)
Jul 18 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 cron中的批处理
2008/09/16 PHP
浅谈php中mysql与mysqli的区别分析
2013/06/10 PHP
使用array mutisort 实现按某字段对数据排序
2013/06/18 PHP
php判断字符串在另一个字符串位置的方法
2014/02/27 PHP
PHP 9 大缓存技术总结
2015/09/17 PHP
CSS中一些@规则的用法小结
2021/03/09 HTML / CSS
Extjs学习笔记之一 初识Extjs之MessageBox
2010/01/07 Javascript
javascript 子窗体父窗体相互传值方法
2010/05/31 Javascript
JS实现在Repeater控件中创建可隐藏区域的代码
2010/09/16 Javascript
jQuery学习笔记 操作jQuery对象 CSS处理
2012/09/19 Javascript
jquery获取url参数及url加参数的方法
2015/10/26 Javascript
详解jQuery停止动画——stop()方法的使用
2016/12/14 Javascript
浅谈jquery拼接字符串效率比较高的方法
2017/02/22 Javascript
Angular.js之作用域scope'@','=','&amp;'实例详解
2017/02/28 Javascript
jQuery实现动态添加节点与遍历节点功能示例
2017/11/09 jQuery
vuex 动态注册方法 registerModule的实现
2019/07/03 Javascript
详解Vue之事件处理
2020/07/10 Javascript
js实现点击按钮随机生成背景颜色
2020/09/05 Javascript
[13:25]VP vs VICI (BO3)
2018/06/07 DOTA
举例讲解Python中的迭代器、生成器与列表解析用法
2016/03/20 Python
python 实现图片旋转 上下左右 180度旋转的示例
2019/01/24 Python
Python3.7 新特性之dataclass装饰器
2019/05/27 Python
pyqt5 键盘监听按下enter 就登陆的实例
2019/06/25 Python
Python turtle库绘制菱形的3种方式小结
2019/11/23 Python
PyTorch和Keras计算模型参数的例子
2020/01/02 Python
简单了解django文件下载方式
2020/02/10 Python
opencv python在视屏上截图功能的实现
2020/03/05 Python
matplotlib subplot绘制多个子图的方法示例
2020/07/28 Python
技校生自我鉴定范文
2013/09/26 职场文书
求职者简历中的自我评价
2013/10/20 职场文书
应用艺术毕业生的自我评价
2013/12/04 职场文书
四年级下册教学反思
2014/02/01 职场文书
竞聘书怎么写,如何写?
2014/03/31 职场文书
寄语学生的话
2014/04/10 职场文书
动画设计系毕业生求职信
2014/07/15 职场文书
新郎结婚感言
2015/07/31 职场文书