基于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 工具函数学习资料
Apr 29 Javascript
JS 类型转换常见方法小结
May 31 Javascript
jQuery EasyUI中对表格进行编辑的实现代码
Jun 10 Javascript
简单实用的全选反选按钮例子
Oct 18 Javascript
JS+CSS实现可拖拽的漂亮圆角特效弹出层完整实例
Feb 13 Javascript
如何用JS/HTML将时间戳转换为“xx天前”的形式
Feb 06 Javascript
Angular.Js中过滤器filter与自定义过滤器filter实例详解
May 08 Javascript
js 发布订阅模式的实例讲解
Sep 10 Javascript
iview通过Dropdown(下拉菜单)实现的右键菜单
Oct 26 Javascript
微信小程序如何实现五星评价功能
Oct 15 Javascript
初学vue出现空格警告的原因及其解决方案
Oct 31 Javascript
Vue-cli打包后如何本地查看的操作
Sep 02 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
建立动态的WML站点(三)
2006/10/09 PHP
PHP开发中常用的字符串操作函数
2011/02/08 PHP
Yii核心组件AssetManager原理分析
2014/12/02 PHP
PHP封装的HttpClient类用法实例
2015/06/17 PHP
利用php做服务器和web前端的界面进行交互
2016/10/31 PHP
解析 thinkphp 框架中的部分方法
2017/05/07 PHP
PHP 实现 WebSocket 协议原理与应用详解
2020/04/22 PHP
js表数据排序 sort table data
2009/02/18 Javascript
Jquery跨域获得Json时invalid label错误的解决办法
2011/01/11 Javascript
ECMAScript5中的对象存取器属性:getter和setter介绍
2014/12/08 Javascript
借助FileReader实现将文件编码为Base64后通过AJAX上传
2015/12/24 Javascript
jQuery实现点击按钮文字变成input框点击保存变成文字
2016/05/09 Javascript
微信小程序(应用号)开发新闻客户端实例
2016/10/24 Javascript
JQuery实现文字无缝滚动效果示例代码(Marquee插件)
2017/03/07 Javascript
Vue2.x中的父子组件相互通信的实现方法
2017/05/02 Javascript
jquery实现提示语淡入效果
2017/05/05 jQuery
JS简单获取并修改input文本框内容的方法示例
2018/04/08 Javascript
js实现导航跟随效果
2018/11/17 Javascript
Vue中computed、methods与watch的区别总结
2019/04/10 Javascript
tweenjs缓动算法的使用实例分析
2019/08/26 Javascript
javascript使用Blob对象实现的下载文件操作示例
2020/04/18 Javascript
快速解决vue2+vue-cli3项目ie兼容的问题
2020/11/17 Vue.js
[00:14]PWL:老朋友Mushi拍VLOG与中国玩家问好
2020/11/04 DOTA
pytorch实现线性拟合方式
2020/01/15 Python
python爬虫实现获取下一页代码
2020/03/13 Python
python 等差数列末项计算方式
2020/05/03 Python
新东网科技Java笔试题
2012/07/13 面试题
求职信的要素有哪些呢
2013/12/26 职场文书
八年级历史教学反思
2014/01/10 职场文书
销售员岗位职责范本
2014/02/03 职场文书
运动会开幕式解说词
2014/02/05 职场文书
学校感恩教育活动总结
2014/07/07 职场文书
歌咏比赛主持词
2015/06/29 职场文书
如何写好活动总结
2019/06/21 职场文书
Python趣味挑战之用pygame实现简单的金币旋转效果
2021/05/31 Python
浅谈为什么我的 z-index 又不生效了
2022/07/15 HTML / CSS