jQuery实现加入购物车飞入动画效果


Posted in Javascript onMarch 14, 2015

jQuery实现加入购物车飞入动画效果

HTML

首先载入jQuery库文件和jquery.fly.min.js插件。

<script src="jquery.js"></script> 

<script src="jquery.fly.min.js"></script>

接着,将商品信息html结构布置好,本例中,我们用四个商品并排布置,每个商品box中包括有商品图片、价格、名称以及加入购物车按钮等信息。

<div class="box"> 

    <img src="images/lg.jpg" width="180" height="180"> 

    <h4>¥<span>3499.00</span></h4> 

    <p>LG 49LF5400-CA 49寸IPS硬屏富贵招财铜钱设计</p> 

    <a href="#" class="button orange addcar">加入购物车</a> 

</div> 

<div class="box"> 

    <img src="images/hs.jpg" width="180" height="180"> 

    <h4>¥<span>3799.00</span></h4> 

    <p>Hisense/海信 LED50T1A 海信电视官方旗舰店</p> 

    <a href="#" class="button orange addcar">加入购物车</a> 

</div> 

<div class="box"> 

    <img src="images/cw.jpg" width="180" height="180"> 

    <h4>¥<span>¥3999.00</span></h4> 

    <p>Skyworth/创维 50E8EUS 8核4Kj极清酷开系统智能液晶电视</p> 

    <a href="#" class="button orange addcar">加入购物车</a> 

</div> 

<div class="box"> 

    <img src="images/ls.jpg" width="180" height="180"> 

    <h4>¥<span>6969.00</span></h4> 

    <p>乐视TV Letv X60S 4核1080P高清3D安卓智能超级电视</p> 

    <a href="#" class="button orange addcar">加入购物车</a> 

</div>

然后,我们还需要在页面的右侧加上购物车以及提示信息。

<div class="m-sidebar"> 

    <div class="cart"> 

        <i id="end"></i> 

        <span>购物车</span> 

    </div> 

</div> 

<div id="msg">已成功加入购物车!</div>

CSS
我们使用CSS先将商品排列美化,然后设置右侧购物车样式,具体请看代码:
 

.box{float:left; width:198px; height:320px; margin-left:5px; border:1px solid #e0e0e0; text-align:center} 

.box p{line-height:20px; padding:4px 4px 10px 4px; text-align:left} 

.box:hover{border:1px solid #f90} 

.box h4{line-height:32px; font-size:14px; color:#f30;font-weight:500} 

.box h4 span{font-size:20px} 

.u-flyer{display: block;width: 50px;height: 50px;border-radius: 50px;position: fixed;z-index: 9999;} 

.m-sidebar{position: fixed;top: 0;right: 0;background: #000;z-index: 2000;width: 35px;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:0 auto;} 

.cart i{width:35px;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}

jQuery

我们要实现的效果是,当用户点击“加入购物车”按钮时,当前商品图片会变成一个缩小的圆球,以按钮为起点,向右侧以抛物线的形式飞出,最后落入页面右侧的购物车里,并提示操作成功。在飞出之前,我们要获取当前商品的图片,然后调用fly插件,之后的抛物线轨迹都是由fly插件完成,我们只需定义起点和终点等参数即可。

<script> 

$(function() { 

    var offset = $("#end").offset(); 

    $(".addcar").click(function(event){ 

        var addcar = $(this); 

        var img = addcar.parent().find('img').attr('src'); 

        var flyer = $('<img class="u-flyer" src="'+img+'">'); 

        flyer.fly({ 

            start: { 

                left: event.pageX, //开始位置(必填)#fly元素会被设置成position: fixed 

                top: event.pageY //开始位置(必填) 

            }, 

            end: { 

                left: offset.left+10, //结束位置(必填) 

                top: offset.top+10, //结束位置(必填) 

                width: 0, //结束时宽度 

                height: 0 //结束时高度 

            }, 

            onEnd: function(){ //结束回调 

                $("#msg").show().animate({width: '250px'}, 200).fadeOut(1000); //提示信息 

                addcar.css("cursor","default").removeClass('orange').unbind('click'); 

                this.destory(); //移除dom 

            } 

        }); 

    }); 

}); 

</script>

复制上面的代码,保存并运行即可看到效果,Fly插件的项目官网地址是:https://github.com/amibug/fly,值得一提的是,IE10以下需要添加以下js:

<script src="requestAnimationFrame.js"></script>

以上就是本文的全部内容了,希望大家能够喜欢

Javascript 相关文章推荐
JQuery最佳实践之精妙的自定义事件
Aug 11 Javascript
jquery获取div宽度的实现思路与代码
Jan 13 Javascript
jQuery实现返回顶部功能
Feb 23 Javascript
BootStrap初学者对弹出框和进度条的使用感觉
Jun 27 Javascript
微信小程序 vidao实现视频播放和弹幕的功能
Nov 02 Javascript
JavaScript之WebSocket技术详解
Nov 18 Javascript
使用Node.js实现简易MVC框架的方法
Aug 07 Javascript
js Element Traversal规范中的元素遍历方法
Apr 19 Javascript
原生JS进行前后端同构
Apr 22 Javascript
vue组件实践之可搜索下拉框功能
Nov 25 Javascript
JavaScript封闭函数及常用内置对象示例
May 13 Javascript
Node.js系列之发起get/post请求(2)
Aug 30 Javascript
jQuery插件实现大图全屏图片相册
Mar 14 #Javascript
jQuery实现精美的多级下拉菜单特效
Mar 14 #Javascript
jQuery实现菜单式图片滑动切换
Mar 14 #Javascript
jQuery.Highcharts.js绘制柱状图饼状图曲线图
Mar 14 #Javascript
jQuery实现跨域iframe接口方法调用
Mar 14 #Javascript
Flash图片上传组件 swfupload使用指南
Mar 14 #Javascript
jQuery插件jFade实现鼠标经过的图片高亮其它变暗
Mar 14 #Javascript
You might like
yii实现级联下拉菜单的方法
2014/07/31 PHP
ThinkPHP文件上传实例教程
2014/08/22 PHP
Linux下从零开始安装配置Nginx服务器+PHP开发环境
2015/12/21 PHP
JS获取IP、MAC和主机名的五种方法
2013/11/14 Javascript
JS延迟加载加快页面打开速度示例代码
2013/12/30 Javascript
NodeJS的Promise的用法解析
2016/05/05 NodeJs
KnockoutJs快速入门教程
2016/05/16 Javascript
微信小程序实现星级评分和展示
2018/07/05 Javascript
详解Vue webapp项目通过HBulider打包原生APP(vue+webpack+HBulider)
2019/02/02 Javascript
亲自动手实现vue日历控件
2019/06/26 Javascript
layui 弹出删除确认界面的实例
2019/09/06 Javascript
Vue props中Object和Array设置默认值操作
2020/07/30 Javascript
vue 内联样式style中的background用法说明
2020/08/05 Javascript
js实现简单的轮播图效果
2020/12/13 Javascript
vue-router懒加载的3种方式汇总
2021/02/28 Vue.js
简单介绍Ruby中的CGI编程
2015/04/10 Python
Python 实现 贪吃蛇大作战 代码分享
2016/09/07 Python
浅谈机器学习需要的了解的十大算法
2017/12/15 Python
Python星号*与**用法分析
2018/02/02 Python
Python元组拆包和具名元组解析实例详解
2018/03/26 Python
pycharm创建一个python包方法图解
2019/04/10 Python
对Python3之方法的覆盖与super函数详解
2019/06/26 Python
Python跑循环时内存泄露的解决方法
2020/01/13 Python
关于windows下Tensorflow和pytorch安装教程
2020/02/04 Python
浅谈python输出列表元素的所有排列形式
2020/02/26 Python
keras的siamese(孪生网络)实现案例
2020/06/12 Python
PyCharm 光标变成黑块的解决方式
2021/02/06 Python
美国电视购物HSN官网:HSN
2016/09/07 全球购物
标准毕业生自荐信范文
2013/11/04 职场文书
30年同学聚会邀请函
2014/01/25 职场文书
恐龙的灭绝教学反思
2014/02/12 职场文书
纪检监察建议书
2014/05/19 职场文书
舞蹈兴趣小组活动总结
2014/07/07 职场文书
2016党校培训心得体会
2016/01/07 职场文书
PHP实现rar解压读取扩展包小结
2021/06/03 PHP
科普 | 业余无线电知识-波段篇
2022/02/18 无线电