某些电商网站加入购物车和减少购物车商品数量时,有个小动画,以抛物线形式增减,如图:

    

这里用到了第三方jQuery.Fly.js插件(底层依赖Jquery库,地址:https://github.com/amibug/fly/blob/master/src/fly.js),使用方法直接上代码,自己体验:

引入js库:

  1. <head lang="en">
  2. <meta charset="UTF-8">
  3. <title></title>
  4. <script src="jquery-1.8.0.min.js" type="text/javascript"></script>
  5. <script src="fly.js" type="text/javascript"></script>
  6. </head>

Html代码:

  1. <body style="text-align: center;">
  2. <div id="divSource">
  3. <div>
  4. <img src="http://images.yummy77.com/img/111012/111012068/g1_150_6.jpg"></img><input type="button" VALUE="add"></input><input type="button" VALUE="remove"></input>
  5. </div>
  6. <div>
  7. <img src="http://images.yummy77.com/img/111011/111011111/g1_150.jpg"></img><input type="button" VALUE="add"></input><input type="button" VALUE="remove"></input>
  8. </div>
  9. <div>
  10. <img src="http://images.yummy77.com/img/211110/211110060/g1_150.jpg"></img><input type="button" VALUE="add"></input><input type="button" VALUE="remove"></input>
  11. </div>
  12. </div>
  13. <div id="divTarget" style="width:60px;height:60px; background: #ddd;margin:20px;">快到碗里来……</div>
  14. </body>

自定义JS代码:

  1. <script type="text/javascript">
  2. $(function(){
  3. $("#divSource input[value='add']").bind("click",function(){
  4. var _sourceImg=$(this).prev();
  5. var _back=function(){};
  6. var _target=$("#divTarget");
  7. objectFlyIn(_sourceImg,_target,_back);
  8. });
  9. $("#divSource input[value='remove']").bind("click",function(){
  10. var _sourceImg=$(this).prev().prev();
  11. var _back=function(){};
  12. var _target=$("#divTarget");
  13. objectFlyOut(_sourceImg,_target,_back);
  14. });
  15. /**
  16. * 对象飞入
  17. *
  18. */
  19. function objectFlyIn(_sourceImg,_target, _back) {
  20. var addOffset =_target.offset();
  21.  
  22. var img = _sourceImg;
  23. var flyer = $('<img style="display: block;width: 50px;height: 50px;border-radius: 50px;position: fixed;z-index: 100000;" src="' + img.attr('src') + '">');
  24. var X,Y;
  25.  
  26. if(img.offset()){
  27. X = img.offset().left - $(window).scrollLeft();
  28. Y = img.offset().top - $(window).scrollTop();
  29. }
  30. flyer.fly({
  31. start: {
  32. left: X + img.width() / 2 - 25, //开始位置(必填)
  33. top: Y + img.height() / 2 - 25 //开始位置(必填)
  34. },
  35. end: {
  36. left: addOffset.left + 10, //结束位置(必填)
  37. top: addOffset.top + 10, //结束位置(必填)
  38. width: 10, //结束时宽度
  39. height: 10 //结束时高度
  40. },
  41. onEnd: function () { //结束回调
  42. this.destroy(); //移除dom
  43. _back();
  44. }
  45. });
  46.  
  47. }
  48.  
  49. /**
  50. * 对象飞出
  51. *
  52. */
  53. function objectFlyOut(_sourceImg,_target, _back) {
  54. var addOffset = _target.offset();
  55.  
  56. var img = _sourceImg;
  57. var flyer = $('<img style="display: block;width: 50px;height: 50px;border-radius: 50px;position: fixed;z-index: 100000;" src="' + img.attr('src') + '">');
  58.  
  59. flyer.fly({
  60. start: {
  61. left: addOffset.left, //开始位置(必填)
  62. top: addOffset.top //开始位置(必填)
  63. },
  64. end: {
  65. left: addOffset.left-20, //结束位置(必填)
  66. top: addOffset.top-20, //结束位置(必填)
  67. width: 5, //结束时宽度
  68. height: 5 //结束时高度
  69. },
  70. onEnd: function () { //结束回调
  71. this.destroy(); //移除dom
  72. _back();
  73. }
  74. });
  75. }
  76.  
  77. })
  78. </script>

  

购物车增加、减少商品时动画效果:jQuery.Fly.js插件使用方法的更多相关文章

  1. 基于jquery fly插件实现加入购物车抛物线动画效果,jquery.fly.js

    在购物网站中,加入购物车的功能是必须的功能,有的网站在用户点击加入购物车按钮时,就会出现该商品从点击出以抛物线的动画相似加入购物车,这个功能看起来非常炫,对用户体验也有一定的提高.下面介绍基于jque ...

  2. 整屏滚动效果 jquery.fullPage.js插件+CSS3实现

    最近很流行整屏滚动的效果,无论是在PC端还是移动端,本人也借机学习了一下,主要通过jquery.funnPage.js插件+CSS3实现效果. 本人做的效果: PC端:http://demo.qpdi ...

  3. 用C3中的animation和transform写的一个模仿加载的时动画效果

    用用C3中的animation和transform写的一个模仿加载的时动画效果! 不多说直接上代码; html标签部分 <div class="wrap"> <h ...

  4. jQuery Easing 动画效果扩展--使用Easing插件,让你的动画更具美感。

    jQuery  Easing 是一款比较老的jQuery插件,在很多网站都有应用,尤其是在一些页面滚动.幻灯片切换等场景应用比较多.它非常小巧,且有多种动画方案供选择,使用简单,而且免费. 引入Eas ...

  5. 【PC端】jQuery+PHP实现浏览更多内容(jquery.more.js插件)

    参数说明: 'amount' : '10', //每次显示记录数 'address' : 'comments.php', //请求后台的地址 'format' : 'json', //数据传输格式 ' ...

  6. jquery.autocomplete.js 插件的自定义搜索规则

    这二天开始用jquery.autocomplete这个自动完成插件.功能基本比较强大,但自己在实际需求中发现还是有一处不足!问题是这样:当我定义了一个本地数据JS文件时,格式为JSON式的数组.如下: ...

  7. jQuery.cookie.js插件了解及使用方法

    jquery.cookie.js插件实现浏览器的cookie存储,该插件是基于jquery开发,方便cookie使用. jquerycookie.js的下载地址 http://plugins.jque ...

  8. ajax请求执行完成后再执行其他操作(jQuery.page.js插件使用为例)

    就我们做知,ajax强大之处在于它的异步请求,但是有时候我们需要ajax执行彻底完成之后再执行其他函数或操作 这个时候往往我们用到ajax的回调函数,但是假如你不想或者不能把接下来的操作写在回调函数中 ...

  9. 异步上传图片,光用jquery不行,得用jquery.form.js插件

    异步上传图片,光用jquery不行,得用jquery.form.js插件,百度一下下载这个插件,加jquery,引入就可以了 <form id="postbackground" ...

随机推荐

  1. 【Android】事件总线(解耦组件) EventBus 详解

    当Android项目越来越庞大的时候,应用的各个部件之间的通信变得越来越复杂,例如:当某一条件发生时,应用中有几个部件对这个消息感兴趣,那么我们通常采用的就是观察者模式,使用观察者模式有一个弊病就是部 ...

  2. Atitit..文件上传组件选型and最佳实践总结(3)----断点续传控件的实现

    Atitit..文件上传组件选型and最佳实践总结(3)----断点续传控件的实现 1. 实现思路:::元插件,元设置... 1 2. 实现流程downzip,unzip,exec 1 3. Zip  ...

  3. Spring第一天

    Spring框架 1.1:了解Spring Spring的核心是提供了一个容器,主要通过 BeanFactory(接口)来创建和管理对象,一般我们用它的子类ApplicationContext 来创建 ...

  4. php对csv文件的读取,写入,输出下载操作

    在实际工作中,很多时候需要把网站上的一些数据下载到CSV文件里,方便以后查看. 亦或者是用CSV进行一些批量的上传工作. 这个时候我们就需要对CSV进行读写操作. 1.CSV的读取操作 <?ph ...

  5. Android 发布可穿戴设备 SDK 的开发者预览版

    今早上安卓官网查资料,发现网站上赫然显示着"Android Wear"几个大字.难道……?点进去看,果然,Android发布了可穿戴设备的SDK的开发者预览版. 其中这第五张图…… ...

  6. TL-WR702N 连接有线路由

    2015-12-23日 备忘录: 1. TL-WR702N一定要设置为 route模式,一定选择“动态ip”,而不是“PPPOE” 2.有线路由器 与  TL-WR702N 的IP不能在一个网段: 目 ...

  7. C# Bitmap类型与Byte[]类型相互转化

    Bitmap   =>   byte[]  Bitmap b = new Bitmap( "test.bmp "); MemoryStream ms = new Memory ...

  8. HOWTO - Basic MSI安装包在安装运行过程中如何获取完整源路径

    有朋友问到如何在一个Windows Installer安装包中获取安装包源路径,就是在安装包运行过程中动态获取*.msi所在完整路径. 这个问题分两类,如果我们的安装包只是一个*.msi安装文件,那么 ...

  9. burp suite 使用教程详解(外文翻译转)

    Burp Suite是Web应用程序测试的最佳工具之一,其多种功能可以帮我们执行各种任务.请求的拦截和修改,扫描web应用程序漏洞,以暴力破解登陆表单,执行会话令牌等多种的随机性检查.本文将做一个Bu ...

  10. Ext4,Ext3的特点和区别(转)

    Linux kernel 自 2.6.28 开始正式支持新的文件系统 Ext4. Ext4 是 Ext3 的改进版,修改了 Ext3 中部分重要的数据结构,而不仅仅像 Ext3 对 Ext2 那样,只 ...