jQuery模拟实现天猫购物车动画效果实例代码


Posted in jQuery onMay 25, 2017

一、功能描述:

   1、点击购买按钮,模拟抛物线将物品弹到购物车里;

   2、购物车添加物品后,显示+1动画;

效果图如下:

jQuery模拟实现天猫购物车动画效果实例代码

实现如下:

   1、导入jquery相关的包:

<script type="text/javascript" src="jquery-2.1.1.min.js"></script>
<script src="jquery.fly.min.js"></script>

  2、html文件内容:

<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<title>jQuery实现模拟天猫加入购物车飞入动画效果</title>
<meta name="keywords" content="jquery,购物车" />
<body>
<div id="main">
  <div class="demo">
    <div class="box orange button addcar">
      <div style="padding-top:55px">
      土豪,请猛击我,加入购物车
      </div>
    </div>
  </div>
  </div>
  <div class="m-sidebar">
    <div class="cart">
      <i id="end"></i>
      <span>购物车</span>
    </div>
  </div>
</div>
</body>

3、css样式:

<style type="text/css">
.demo{width:820px; margin:60px auto 10px auto}
.m-sidebar{position: fixed;top: 0;right: 0;background: #000;z-index: 2000;width: 85px;height: 100%;font-size: 12px;color: #fff;}
.cart{color: #fff;text-align:center;line-height: 20px;padding: 200px 0 0 0px;}
.cart span{display:block;width:20px;margin:10 0 0 0;}
.cart i{width:50px;height:35px;display:block; background:url(car.png) no-repeat;}
#msg{position:fixed; top:300px; right:35px; z-index:10000; width:1px; height:52px; line-height:52px; font-size:20px; text-align:center; color:#fff; background:#360; display:none}
.box{width:300px; height:150px; border:1px solid #e0e0e0; text-align:center}
.u-flyer{display: block;width: 50px;height: 50px;border-radius: 50px;position: fixed;z-index: 9999;}
.button {
  display: inline-block;
  outline: none;
  cursor: pointer;
  text-align: center;
  text-decoration: none;
  font: 16px/100% 'Microsoft yahei',Arial, Helvetica, sans-serif;
  padding: .5em 2em .55em;
  text-shadow: 0 1px 1px rgba(0,0,0,.3);
  -webkit-border-radius: .5em; 
  -moz-border-radius: .5em;
  border-radius: .5em;
  -webkit-box-shadow: 0 1px 2px rgba(0,0,0,.2);
  -moz-box-shadow: 0 1px 2px rgba(0,0,0,.2);
  box-shadow: 0 1px 2px rgba(0,0,0,.2);
}
.button:hover {
  text-decoration: none;
}
.button:active {
  position: relative;
  top: 1px;
}
/* orange */
.orange {
  color: #fef4e9;
  border: solid 1px #da7c0c;
  background: #f78d1d;
  background: -webkit-gradient(linear, left top, left bottom, from(#faa51a), to(#f47a20));
  background: -moz-linear-gradient(top, #faa51a, #f47a20);
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#faa51a', endColorstr='#f47a20');
}
.orange:hover {
  background: #f47c20;
  background: -webkit-gradient(linear, left top, left bottom, from(#f88e11), to(#f06015));
  background: -moz-linear-gradient(top, #f88e11, #f06015);
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f88e11', endColorstr='#f06015');
}
.orange:active {
  color: #fcd3a5;
  background: -webkit-gradient(linear, left top, left bottom, from(#f47a20), to(#faa51a));
  background: -moz-linear-gradient(top, #f47a20, #faa51a);
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f47a20', endColorstr='#faa51a');
}

4、核心的JQuery代码:

<script>
//实现购物车+1动画效果
(function ($) {
  $.extend({
    tipsBox: function (options) {
      options = $.extend({
        obj: null, //jq对象,要在那个html标签上显示
        str: "+1", //字符串,要显示的内容
        startSize: "18px", //动画开始的文字大小
        endSize: "38px",  //动画结束的文字大小
        interval: 600, //动画时间间隔
        color: "red",  //文字颜色
        callback: function () { }  //回调函数
      }, options);
      $("body").append("<span class='num'>" + options.str + "</span>");
      var box = $(".num");
      var left = options.obj.offset().left + options.obj.width() / 2;
      var top = options.obj.offset().top - options.obj.height();
      box.css({
        "position": "absolute",
        "left": left + "px",
        "top": top + "px",
        "z-index": 9999,
        "font-size": options.startSize,
        "line-height": options.endSize,
        "color": options.color
      });
      box.animate({
        "font-size": options.endSize,
        "opacity": "0",
        "top": top - parseInt(options.endSize) + "px"
      }, options.interval, function () {
        box.remove();
        options.callback();
      });
    }
  });
})(jQuery);
function niceIn(prop){
  prop.find('i').addClass('niceIn');
  setTimeout(function(){
    prop.find('i').removeClass('niceIn');
  },1000);
}
//实现抛物线动画功能
$(function() {
  var offset = $("#end").offset();
  $(".addcar").click(function(event){
    var addcar = $(this);
    var img = "images/lg.jpg";
    var flyer = $('<img class="u-flyer" src="'+img+'">');
    flyer.fly({
      start: {
        left: event.pageX,
        top: event.pageY
      },
      end: {
        left: offset.left+10,
        top: offset.top+10,
        width: 0,
        height: 0
      },
      onEnd: function(){
        $.tipsBox({
            obj: $("#end"),
            str: "<b style='font-family:Microsoft YaHei;'>+1</b>",
            callback: function () {
            }
        });
        niceIn($("#end"));
      }
    });
  });
});
</script>

以上所述是小编给大家介绍的jQuery模拟实现天猫购物车动画效果实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

jQuery 相关文章推荐
jQuery Tree Multiselect使用详解
May 02 jQuery
jQuery实现拼图小游戏(实例讲解)
Jul 24 jQuery
jQuery实现表格冻结顶栏效果
Aug 20 jQuery
jQuery EasyUI开发技巧总结
Sep 26 jQuery
jQuery实现的点击按钮改变样式功能示例
Jul 21 jQuery
Vue.js 通过jQuery ajax获取数据实现更新后重新渲染页面的方法
Aug 09 jQuery
jQuery 同时获取多个标签的指定内容并储存为数组
Nov 20 jQuery
使用异步controller与jQuery实现卷帘式分页
Jun 18 jQuery
jQuery实现每日秒杀商品倒计时功能
Sep 06 jQuery
基于JQuery和DWR实现异步数据传递
Oct 16 jQuery
jquery插件懒加载的示例
Oct 24 jQuery
jquery实现点击左右按钮切换图片
Jan 27 jQuery
jquery.masonry瀑布流效果
May 25 #jQuery
浅谈struts1 &amp; jquery form 文件异步上传
May 25 #jQuery
jquery Form轻松实现文件上传
May 24 #jQuery
解决jQuery ajax动态新增节点无法触发点击事件的问题
May 24 #jQuery
JQuery Ajax 异步操作之动态添加节点功能
May 24 #jQuery
使用jQuery.Pin垂直滚动时固定导航
May 24 #jQuery
jquery append与appendTo方法比较
May 24 #jQuery
You might like
从一个不错的留言本弄的mysql数据库操作类
2007/09/02 PHP
php提示Failed to write session data错误的解决方法
2014/12/17 PHP
PHP查询快递信息的方法
2015/03/07 PHP
完美解决Thinkphp3.2中插入相同数据的问题
2017/08/01 PHP
php mysql PDO 查询操作的实例详解
2017/09/23 PHP
php实现姓名根据首字母排序的类与方法(实例代码)
2018/05/16 PHP
jquery $.ajax入门应用二
2008/11/19 Javascript
修复IE9&amp;safari 的sort方法
2011/10/21 Javascript
JavaScript中json对象和string对象之间相互转化
2012/12/26 Javascript
基于jQuery中对数组进行操作的方法
2013/04/16 Javascript
JS获取键盘上任意按键的值(实例代码)
2013/11/12 Javascript
js实现根据身份证号自动生成出生日期
2015/12/15 Javascript
JavaScript事件 &quot;事件对象&quot;的注意要点
2016/01/14 Javascript
Javascript中的迭代、归并方法详解
2016/06/14 Javascript
Javascript highcharts 饼图显示数量和百分比实例代码
2016/12/06 Javascript
利用原生JS与jQuery实现数字线性变化的动画
2017/02/24 Javascript
vue中父子组件注意事项,传值及slot应用技巧
2018/05/09 Javascript
深入理解Vue Computed计算属性原理
2018/05/29 Javascript
vue中v-for通过动态绑定class实现触发效果
2018/12/06 Javascript
详解微信小程序获取当前时间及日期的方法
2019/04/28 Javascript
JavaScript变量作用域及内存问题实例分析
2019/06/10 Javascript
vue prop属性传值与传引用示例
2019/11/13 Javascript
Python 中 Virtualenv 和 pip 的简单用法详解
2017/08/18 Python
python 读取DICOM头文件的实例
2018/05/07 Python
基于python实现获取网页图片过程解析
2020/05/11 Python
python里的单引号和双引号的有什么作用
2020/06/17 Python
Python logging模块原理解析及应用
2020/08/13 Python
纯DOM+CSS3实现简单的小风车动画
2016/09/27 HTML / CSS
应届毕业生个人求职自荐信
2014/01/06 职场文书
小学生常见病防治方案
2014/06/06 职场文书
银行纠风工作实施方案
2014/06/08 职场文书
新郎新娘答谢词
2015/01/04 职场文书
党员评议自我评价
2015/03/03 职场文书
2015年营销工作总结范文
2015/04/23 职场文书
光之国的四大叛徒:第一贝利亚导致宇宙毁灭,赛文奥特曼在榜
2022/03/18 日漫
angular4实现带搜索的下拉框
2022/03/25 Javascript