基于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 相关文章推荐
刷新页面实现方式总结(HTML,ASP,JS)
Nov 13 Javascript
javascript日期验证之输入日期大于等于当前日期
Dec 13 Javascript
使用jQuery或者原生js实现鼠标滚动加载页面新数据
Mar 06 Javascript
深入剖析javascript中的exec与match方法
May 18 Javascript
JS如何判断json是否为空
Jul 06 Javascript
Vue组件BootPage实现简单的分页功能
Sep 12 Javascript
vue中配置mint-ui报css错误问题的解决方法
Oct 11 Javascript
webpack写jquery插件的环境配置
Dec 21 jQuery
vue.js提交按钮时进行简单的if判断表达式详解
Aug 08 Javascript
js中实例与对象的区别讲解
Jan 21 Javascript
聊聊Vue 中 title 的动态修改问题
Jun 11 Javascript
React中获取数据的3种方法及优缺点
Feb 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连接oracle数据库及查询数据的方法
2014/12/29 PHP
PHP获取POST数据的几种方法汇总
2015/03/03 PHP
Thinkphp无限级分类代码
2015/11/11 PHP
最新制作ThinkPHP3.2.3完全开发手册
2015/11/23 PHP
PHP实现上传图片到数据库并显示输出的方法
2018/05/31 PHP
3Z版基于jquery的图片复选框(asp.net+jquery)
2010/04/12 Javascript
node.js中的console.trace方法使用说明
2014/12/09 Javascript
JavaScript返回网页中锚点数目的方法
2015/04/03 Javascript
JavaScript使用push方法添加一个元素到数组末尾用法实例
2015/04/06 Javascript
jquery SweetAlert插件实现响应式提示框
2015/08/18 Javascript
ajax与json 获取数据并在前台使用简单实例
2017/01/19 Javascript
使用jquery datatable和bootsrap创建表格实例代码
2017/03/17 Javascript
jQuery实现判断上传图片类型和大小的方法示例
2018/04/11 jQuery
浅谈针对Vue相同路由不同参数的刷新问题
2018/09/29 Javascript
使用Angular Cli如何创建Angular私有库详解
2019/01/30 Javascript
使用Vue-Awesome-Swiper实现旋转叠加轮播效果&amp;平移轮播效果
2019/08/16 Javascript
[01:32]完美世界DOTA2联赛10月29日精彩集锦
2020/10/30 DOTA
全面解读Python Web开发框架Django
2014/06/30 Python
Python实现按特定格式对文件进行读写的方法示例
2017/11/30 Python
python 实时得到cpu和内存的使用情况方法
2018/06/11 Python
python绘制地震散点图
2019/06/18 Python
对Python的交互模式和直接运行.py文件的区别详解
2019/06/29 Python
Django实现WebSSH操作物理机或虚拟机的方法
2019/11/06 Python
详解使用python爬取抖音app视频(appium可以操控手机)
2021/01/26 Python
英国的潮牌鞋履服饰商店:size?
2019/03/26 全球购物
在校学生职业规划范文
2014/01/08 职场文书
《美丽的田园》教学反思
2014/03/01 职场文书
优秀教师感人事迹材料
2014/05/04 职场文书
竞聘演讲稿开场白
2014/08/25 职场文书
组织生活会表态发言材料
2014/10/17 职场文书
2014年检验科工作总结
2014/11/22 职场文书
2015年外联部工作总结
2015/04/03 职场文书
清明节随笔
2015/08/15 职场文书
Java实现二维数组和稀疏数组之间的转换
2021/06/27 Java/Android
一篇文章看懂MySQL主从复制与读写分离
2021/11/07 MySQL
Redis批量生成数据的实现
2022/06/05 Redis