基于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 相关文章推荐
从新浪弄下来的全屏广告代码 与使用说明
Mar 15 Javascript
setTimeout与setInterval在不同浏览器下的差异
Jan 24 Javascript
面向对象的Javascript之三(封装和信息隐藏)
Jan 27 Javascript
JS JSON对象转为字符串的简单实现方法
Nov 18 Javascript
10分钟学会写Jquery插件实例教程
Sep 06 Javascript
jQuery实现设置、移除文本框默认值功能
Jan 13 Javascript
JavaScript使用cookie实现记住账号密码功能
Apr 27 Javascript
JavaScript中Boolean对象的属性解析
Oct 21 Javascript
在vue.js中抽出公共代码的方法示例
Jun 08 Javascript
vue.js实现回到顶部动画效果
Jul 31 Javascript
vue-cli3+typescript新建一个项目的思路分析
Aug 06 Javascript
JS+CSS实现随机点名(实例代码)
Nov 04 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 smarty模版引擎中的缓存应用
2009/12/11 PHP
php INI配置文件的解析实现分析
2011/01/04 PHP
php用户注册页面利用js进行表单验证具体实例
2013/10/17 PHP
memcache一致性hash的php实现方法
2015/03/05 PHP
php实现分页显示
2015/11/03 PHP
Chrome中模态对话框showModalDialog返回值问题的解决方法
2010/05/25 Javascript
让图片旋转任意角度及JQuery插件使用介绍
2013/03/20 Javascript
js 判断控件获得焦点的示例代码
2014/03/04 Javascript
js脚本实现数据去重
2014/11/27 Javascript
jquery代码实现简单的随机图片瀑布流效果
2015/04/20 Javascript
jQuery简单实现验证邮箱格式
2015/07/15 Javascript
javascript函数命名的三种方式及区别介绍
2016/03/22 Javascript
设置点击文本框或图片弹出日历控件的实现代码
2016/05/12 Javascript
使用jQuery制作浮动工具栏的实例分享
2016/05/13 Javascript
JS实现兼容各种浏览器的高级拖动方法完整实例【测试可用】
2016/06/21 Javascript
jQuery获取this当前对象子元素对象的方法
2016/11/29 Javascript
AngularJS中$http的交互问题
2017/03/29 Javascript
详解如何在React组件“外”使用父组件的Props
2018/01/12 Javascript
解决Js先触发失去焦点事件再执行点击事件的问题
2018/08/30 Javascript
vue项目引入Iconfont图标库的教程图解
2018/10/24 Javascript
js实现图片局部放大效果详解
2019/03/18 Javascript
本地文件上传到七牛云服务器示例(七牛云存储)
2014/01/11 Python
Python 多线程抓取图片效率对比
2016/02/27 Python
numpy.transpose对三维数组的转置方法
2018/04/17 Python
PyQt5每天必学之工具提示功能
2018/04/19 Python
python 解决动态的定义变量名,并给其赋值的方法(大数据处理)
2018/11/10 Python
django多对多表的创建,级联删除及手动创建第三张表
2019/07/25 Python
Python学习笔记之迭代器和生成器用法实例详解
2019/08/08 Python
python实现XML解析的方法解析
2019/11/16 Python
Hudson Jeans官网:高级精制牛仔裤
2018/11/28 全球购物
比较一下entity bean和session bean
2013/12/27 面试题
如何用Python输出一个Fibonacci数列
2016/08/28 面试题
搞笑获奖感言
2014/01/30 职场文书
《胖乎乎的小手》教学反思
2014/02/26 职场文书
村创先争优活动总结
2014/08/28 职场文书
教师学习群众路线心得体会
2014/11/04 职场文书