新的一天新的开始,今天要分享的是用jquery模仿苹果操作系统桌面的dock效果,之所以称之为初级版,是因为其中还有一些bug,显示效果并不稳定。由于时间的关系,这些bug还没有修复,希望高手们不吝赐教,提出更好的意见,希望可以做出更好的版本分享给大家。
这是静态的效果图,好吧,看上去还想模像样
下面是html页面的代码:
复制代码 代码如下:
br>http://www.w3.org/tr/html4/strict.dtd>
jqueryproject1
没有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){
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;获取鼠标的垂直位置。
当鼠标移动速度比较慢时显示效果还可以接受,不过当鼠标快速移动时时图标是放大了,不过相应的bug也出来了。
恳请各位走过路过的高手、大神们,提出宝贵的修改意见及更好的算法,谢谢观赏。
