视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
基于JQuery模仿苹果桌面的Dock效果(初级版)_javascript技巧
2020-11-27 21:05:18 责编:小采
文档
 新的一天新的开始,今天要分享的是用JQuery模仿苹果操作系统桌面的Dock效果,之所以称之为初级版,是因为其中还有一些bug,显示效果并不稳定。由于时间的关系,这些bug还没有修复,希望高手们不吝赐教,提出更好的意见,希望可以做出更好的版本分享给大家。

这是静态的效果图,好吧,看上去还想模像样

下面是HTML页面的代码:
代码如下:
"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 && 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也出来了。

恳请各位走过路过的高手、大神们,提出宝贵的修改意见及更好的算法,谢谢观赏。

下载本文
显示全文
专题