基于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 学习笔记01 JQuery初接触
May 06 Javascript
什么是json和jsonp,jQuery json实例详详细说明
Dec 11 Javascript
一个简单的jquery进度条示例
Apr 28 Javascript
教你在heroku云平台上部署Node.js应用
Jul 30 Javascript
javascript实时显示北京时间的方法
Mar 12 Javascript
D3.js实现雷达图的方法详解
Sep 22 Javascript
微信小程序 框架详解及实例应用
Sep 26 Javascript
用纯Node.JS弹出Windows系统消息提示框实例(MessageBox)
May 17 Javascript
微信小程序日历/日期选择插件使用方法详解
Dec 28 Javascript
浅谈express.js框架中间件(middleware)
Apr 07 Javascript
JS+CSS3实现的简易钟表效果示例
Apr 13 Javascript
关于vue利用postcss-pxtorem进行移动端适配的问题
Nov 20 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
破解图片防盗链的代码(asp/php)测试通过
2010/07/02 PHP
php array_unique之后json_encode需要注意
2011/01/02 PHP
php获取用户IPv4或IPv6地址的代码
2012/11/15 PHP
Laravel5.5 视图 - 创建视图和数据传递示例
2019/10/21 PHP
PHP Beanstalkd消息队列的安装与使用方法实例详解
2020/02/21 PHP
javascript 基础篇2 数据类型,语句,函数
2012/03/14 Javascript
node.js不得不说的12点内容
2014/07/14 Javascript
JavaScript实现俄罗斯方块游戏过程分析及源码分享
2015/03/23 Javascript
微信小程序 ecshop地址三级联动实现实例代码
2017/02/28 Javascript
canvas实现爱心和彩虹雨效果
2017/03/09 Javascript
jQuery中的deferred使用方法
2017/03/27 jQuery
jQuery Jsonp跨域模拟搜索引擎
2017/06/17 jQuery
ReactNative踩坑之配置调试端口的解决方法
2017/07/28 Javascript
Vue组件选项props实例详解
2017/08/18 Javascript
vuex的使用及持久化state的方式详解
2018/01/23 Javascript
解决vue项目报错webpackJsonp is not defined问题
2018/03/14 Javascript
vue.js配合$.post从后台获取数据简单demo分享
2018/08/11 Javascript
vue+iview 兼容IE11浏览器的实现方法
2019/01/07 Javascript
使用webpack构建应用的方法步骤
2019/03/04 Javascript
vue实现微信获取用户信息的方法
2019/03/21 Javascript
解决在layer.open中使用时间控件laydate失败的问题
2019/09/11 Javascript
vue2和vue3的v-if与v-for优先级对比学习
2020/10/10 Javascript
Python 中Pickle库的使用详解
2018/02/24 Python
pycharm 实现本地写代码,服务器运行的操作
2020/06/08 Python
python通过函数名调用函数的几种场景
2020/09/23 Python
使用Python实现NBA球员数据查询小程序功能
2020/11/09 Python
关于pycharm 切换 python3.9 报错 ‘HTMLParser‘ object has no attribute ‘unescape‘ 的问题
2020/11/24 Python
html5+css3之CSS中的布局与Header的实现
2014/11/21 HTML / CSS
html5 css3实例教程 一款html5和css3实现的小机器人走路动画
2014/10/20 HTML / CSS
La Redoute英国官网:法国时尚品牌
2017/04/27 全球购物
办公室主任职责范文
2013/11/08 职场文书
趣味体育活动方案
2014/02/08 职场文书
夫妻双方自愿离婚协议书
2014/10/24 职场文书
科技馆观后感
2015/06/08 职场文书
运动会班级口号霸气押韵
2015/12/24 职场文书
写给医护人员的一封感谢信
2019/09/16 职场文书