基于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 相关文章推荐
利用js实现选项卡的特别效果的实例
Mar 03 Javascript
javascript实现rgb颜色转换成16进制格式
Jul 10 Javascript
获取阴历(农历)和当前日期的js代码
Feb 15 Javascript
AngularJS ng-change 指令的详解及简单实例
Jul 30 Javascript
JS实现显示带倒影的图片横排居中放大展示特效实例【测试可用】
Aug 23 Javascript
jquery.flot.js简单绘制折线图用法示例
Mar 13 Javascript
jquery 校验中国身份证号码实例详解
Apr 11 jQuery
Vue.js手风琴菜单组件开发实例
May 16 Javascript
深入理解Vue nextTick 机制
Apr 28 Javascript
详解Vue的常用指令v-if, v-for, v-show,v-else, v-bind, v-on
Oct 12 Javascript
vue使用video插件vue-video-player详解
Oct 23 Javascript
js判断两个数组相等的5种方法
May 06 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判断图片格式的七种方法小结
2013/06/03 PHP
php实现图片文件与下载文件防盗链的方法
2014/11/03 PHP
phpstorm编辑器乱码问题解决
2014/12/01 PHP
PHP第三方登录―QQ登录实现方法
2017/02/06 PHP
window.showModalDialog使用手册
2007/01/11 Javascript
兼容多浏览器的iframe自适应高度(ie8 、谷歌浏览器4.0和 firefox3.5.3)
2009/11/04 Javascript
jQuery 学习入门篇附实例代码
2010/03/16 Javascript
ToolTips JQEURY插件之简洁小提示框效果
2011/11/19 Javascript
js 时间函数应用加、减、比较、格式转换的示例代码
2013/08/23 Javascript
js实现简单登录功能的实例代码
2013/11/09 Javascript
js替代copy(示例代码)
2013/11/27 Javascript
jQuery的remove()方法使用详解
2015/08/11 Javascript
AngularJS 路由和模板实例及路由地址简化方法(必看)
2016/06/24 Javascript
js调用刷新界面的几种方式
2017/05/03 Javascript
vue-image-crop基于Vue的移动端图片裁剪组件示例
2018/08/28 Javascript
js/jQuery实现全选效果
2019/06/17 jQuery
vue自动添加浏览器兼容前后缀操作
2020/08/13 Javascript
Python2.5/2.6实用教程 入门基础篇
2009/11/29 Python
Python的动态重新封装的教程
2015/04/11 Python
在IIS服务器上以CGI方式运行Python脚本的教程
2015/04/25 Python
使用tensorflow实现矩阵分解方式
2020/02/07 Python
python编写softmax函数、交叉熵函数实例
2020/06/11 Python
使用Keras构造简单的CNN网络实例
2020/06/29 Python
Python 创建TCP服务器的方法
2020/07/28 Python
python实现简单的五子棋游戏
2020/09/01 Python
HTML5为输入框添加语音输入功能的实现方法
2017/02/06 HTML / CSS
美国诺德斯特龙百货官网:Nordstrom
2016/08/23 全球购物
塑料制成的可水洗的编织平底鞋和鞋子:Rothy’s
2018/09/16 全球购物
Nike挪威官网:Nike.com (NO)
2018/11/26 全球购物
英国在线潜水商店:Simply Scuba
2019/03/25 全球购物
UNOde50美国官网:西班牙珠宝品牌
2020/08/15 全球购物
编码转换,怎样实现将GB2312编码的字符串转换为ISO-8859-1编码的字符串
2014/01/07 面试题
什么是Linux虚拟文件系统VFS
2012/01/31 面试题
2014社区三八妇女节活动方案
2014/03/30 职场文书
公司离职证明标准样本
2014/10/05 职场文书
2014年电厂工作总结
2014/12/04 职场文书