源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

利用jQuery的动画函数animate实现豌豆发射效果

  • 时间:2021-11-13 12:40 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:利用jQuery的动画函数animate实现豌豆发射效果
[b]先来看看效果图[/b] [img]http://files.jb51.net/file_images/article/201608/2016828170642495.gif?201672817655[/img] 豌豆射手,草坪还有子弹都是现成的图片, [b]1. jQuery是库还是框架?[/b] jQuery可以说是现在最流行的一个js类库,而非框架。 之前在知乎上看到有人说了这样一句话: You call library. Framework calls you. 我深以为然,字面意思大概就是你可以无约束地使用类库,却需要在各种限制条件下使用一个框架。 我私以为,js 库指的是直接和document文档元素交互的一个API,你可以直接引用库,让它为你服务。而框架是偏向于架构的层次,你如果想要使用框架,就必须按照它的规则来。比如angular.js,它就给你提供方法的同时还约束了dom文档结构。 拿Java的三大框架来说,也是如此,你要想使用[code]Spring[/code],就得按照它的步骤来,就好像一个房子,钢筋水泥已经弄好,你只需要进去装修就OK了。而库,就有点类似于[code]StringUtils[/code]的韵味,除了它暴露出来的接口,其他你都无需关心,直接调用就行了。 [b]2. jQuery的animate函数[/b] [code]animate()[/code]函数用于执行一个基于css属性的自定义动画 [b]基本用法:[/b]
$('#id').animate(css,time,callback);
    [b]css :[/b] 你需要最终实现的样式列表     [b]time:[/b] 过渡的时间     [b]callback: [/b]回调函数 [code]animate[/code]函数的作用主要就是实现一些css样式的过渡效果。 [b]3.引入 jQuery [/b] 比如,现在我有一个div盒子。
<!DOCTYPE html>
<html>
 <head>
  <meta charset="UTF-8">
  <script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
  <style type="text/css">
   #box {
    width: 300px;
    height: 300px;
    background:greenyellow;
   }
  </style>
 </head>
 <body>
  <div id='box'></div>
 </body>

 <script>

 </script>

</html>
在上面的代码中,我们引入了百度提供的jQuery文件。 [b]那么如何快速判断是否引入成功了呢?提供以下几个方法:[/b] [b]1.console.log($);[/b] 效果: [img]http://files.jb51.net/file_images/article/201608/2016828170917513.png?201672817927[/img] 这说明引入成功了。 [b]2.直接用浏览器验证[/b] 打开你的页面,按一下F12,出现这样的控制台,这是浏览器自带的(我这里使用的是谷歌浏览器)。 [img]http://files.jb51.net/file_images/article/201608/2016828171007861.png?2016728171015[/img] 输入$ [img]http://files.jb51.net/file_images/article/201608/2016828171037793.png?2016728171046[/img] 回车! [img]http://files.jb51.net/file_images/article/201608/2016828171104054.png?2016728171112[/img] 诶,这样是不是也可以呢? [b]4. onmouseover事件[/b] 我们来给[code]div[/code]盒子添加一个鼠标划上去的事件。
$('#box').on('mouseover',function(){
 alert();
});
划上去: [img]http://files.jb51.net/file_images/article/201608/2016828171153713.png?201672817122[/img] 嗯,最起码,这说明我们到目前为止的代码都是正确的,我初学js的时候就喜欢这样,让我感觉每一行代码都写得很放心。 [b]5.用animate函数改变盒子宽度和高度[/b] 我们把[code]alert[/code]去掉,加上下面的代码:
$('#box').on('mouseover',function(){
 $('#box').animate({width:600},500);
});
这表示当我把鼠标画上去的时候,就改变宽度为600px,过渡时间为500毫秒。 [img]http://files.jb51.net/file_images/article/201608/2016828171331175.gif?2016728171347[/img] 如果我们希望在宽度加倍后,令高度也加倍,又该如何做呢? 对了,用回调函数,当第一个动画执行完毕,就继续执行下一个动画:
$('#box').on('mouseover',function(){
 $('#box').animate({width:600},500,function(){
  $('#box').animate({height:600},500);
 });
});
[img]http://files.jb51.net/file_images/article/201608/2016828171420755.gif?2016728171429[/img] 这样就有了一个先后顺序。 本文简单地介绍了一下jQuery animate函数的使用。 [b]6. 附录 [/b] 最后,附上一开始案例的代码,除了[code]animate[/code]函数,还用到了js的定时器[code]setInterval[/code]方法:
<!DOCTYPE html>
<html>
 <head>
  <meta charset="UTF-8" />
  <script type="text/javascript" src="jquery-1.11.2.min.js"></script>
  <style type="text/css">
   body {
    background: url(background1.jpg) no-repeat;
    position: fixed;
   }
   ul li {
    list-style: none;
   }
   .wrap {
    position: relative;
    left: 170px;
    top: 65px;
   }
   .plants1 {
    display: inline-block;
    position: relative;
    left:35px;
   }
   .plants1 .plant {
    position: relative;
    margin-bottom:20px;
   }
   .plants1 .plant .PB00 {
    position: absolute;
    top:-2px;
    left:15px;
   }

   .plants2 {
    display: inline-block;
    position: relative;
    left:2px;
   }
   .plants2 .plant {
    position: relative;
    margin-bottom:20px;
   }
   .plants2 .plant .PB00 {
    position: absolute;
    top:-2px;
    left:15px;
   }

   .plants3 {
    display: inline-block;
    position: relative;
    left:-40px;
   }
   .plants3 .plant {
    position: relative;
    margin-bottom:20px;
   }
   .plants3 .plant .PB00 {
    position: absolute;
    top:-2px;
    left:15px;
   }
  </style>
 </head>
 <body>
  <div class='wrap'>
   <ul class='plants1'>
    <li class='plant'>
     <img class='Peashooter' src="img/Peashooter.gif" />
     <img class='PB00' src="img/PB00.gif" />
    </li>
    <li class='plant'>
     <img class='Peashooter' src="img/Peashooter.gif" />
     <img class='PB00' src="img/PB00.gif" />
    </li>
    <li class='plant'>
     <img class='Peashooter' src="img/Peashooter.gif" />
     <img class='PB00' src="img/PB00.gif" />
    </li>
    <li class='plant'>
     <img class='Peashooter' src="img/Peashooter.gif" />
     <img class='PB00' src="img/PB00.gif" />
    </li>
    <li class='plant'>
     <img class='Peashooter' src="img/Peashooter.gif" />
     <img class='PB00' src="img/PB00.gif" />
    </li>

   </ul>

   <ul class='plants2'>
    <li class='plant'>
     <img class='Peashooter' src="img/Peashooter.gif" />
     <img class='PB00' src="img/PB00.gif" />
    </li>
    <li class='plant'>
     <img class='Peashooter' src="img/Peashooter.gif" />
     <img class='PB00' src="img/PB00.gif" />
    </li>
    <li class='plant'>
     <img class='Peashooter' src="img/Peashooter.gif" />
     <img class='PB00' src="img/PB00.gif" />
    </li>
    <li class='plant'>
     <img class='Peashooter' src="img/Peashooter.gif" />
     <img class='PB00' src="img/PB00.gif" />
    </li>
    <li class='plant'>
     <img class='Peashooter' src="img/Peashooter.gif" />
     <img class='PB00' src="img/PB00.gif" />
    </li>

   </ul>

   <ul class='plants3'>

    <li class='plant'>
     <img class='Peashooter' src="img/Peashooter.gif" />
     <img class='PB00' src="img/PB00.gif" />
    </li>
    <li class='plant'>
     <img class='Peashooter' src="img/Peashooter.gif" />
     <img class='PB00' src="img/PB00.gif" />
    </li>
    <li class='plant'>
     <img class='Peashooter' src="img/Peashooter.gif" />
     <img class='PB00' src="img/PB00.gif" />
    </li>
    <li class='plant'>
     <img class='Peashooter' src="img/Peashooter.gif" />
     <img class='PB00' src="img/PB00.gif" />
    </li>
    <li class='plant'>
     <img class='Peashooter' src="img/Peashooter.gif" />
     <img class='PB00' src="img/PB00.gif" />
    </li>
   </ul>
  </div>
 </body>

 <script type="text/javascript">

  function randomNum(num){
   return Math.floor(Math.random()*(num+1));
  };

  setInterval(function(){
   var $this = $('.PB00').eq(randomNum(17));
   $this.animate({'margin-left' : 1000},2000,function(){
    $this.css({'margin-left' : 0});
   });
  },10);

 </script> 

</html>
[b]总结[/b] 以上就是这篇文章的全部内容,希望对大家的学习和工作能有所帮助。如果有疑问可以留言交流,谢谢大家对编程素材网的支持。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部