JQuery模仿苹果桌面的Dock效果(初级版)

新的一天新的开始,今天要分享的是用JQuery模仿苹果操作系统桌面的Dock效果,之所以称之为初级版,是因为其中还有一些bug,显示效果并不稳定。由于时间的关系,这些bug还没有修复,希望高手们不吝赐教,提出更好的意见,希望可以做出更好的版本分享给大家。

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

下面是HTML页面的代码:

View Code
<!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进行装饰是必不可少的

View Code
#topBody{
    height: 300px;
}

#topMenu{
    height: 256px;
    line-height: 256px;
}

#topMenu img{
    height: 50px;
    width: 50px;
}

才毕业几个月,解方程都忘记了,所以当鼠标移动时图标的放大算法让我很头疼啊,这里给出的算法只是个人想法,仅供参考,希望各位高手提出更好的算法。而且这里只考虑了鼠标在水平位置移动时的算法,还没有加入鼠标垂直移动式的算法。

View Code
$(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也出来了。

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

转载于:https://www.cnblogs.com/maybe0218/archive/2012/09/20/2694695.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值