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 相关文章推荐
firefox事件处理之自动查找event的函数(用于onclick=foo())
Aug 05 Javascript
JSChart轻量级图形报表工具(内置函数中文参考)
Oct 11 Javascript
40款非常棒的jQuery 插件和制作教程(系列一)
Oct 26 Javascript
浅析JavaScript基本类型与引用类型
May 28 Javascript
JavaScript获取按钮所在form表单id的方法
Apr 02 Javascript
JS中常用的输出方式(五种)
Jun 12 Javascript
Angular中封装fancyBox(图片预览)遇到问题小结
Sep 01 Javascript
Vuejs中使用markdown服务器端渲染的示例
Nov 22 Javascript
boostrap模态框二次弹出清空原有内容的方法
Aug 10 Javascript
Angular angular-file-upload文件上传的示例代码
Aug 23 Javascript
vue el-table实现行内编辑功能
Dec 11 Javascript
用React Native制作一个简单的游戏引擎
May 27 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
用PHP制作静态网站的模板框架(一)
2006/10/09 PHP
php microtime获取浮点的时间戳
2010/02/21 PHP
php class中self,parent,this的区别以及实例介绍
2013/04/24 PHP
ThinkPHP采用实现三级循环代码实例
2014/07/18 PHP
thinkPHP模板引擎用法示例
2016/12/08 PHP
laravel如何开启跨域功能示例详解
2017/08/31 PHP
My Desktop :) 桌面式代码
2008/12/29 Javascript
JavaScript 乱码问题
2009/08/06 Javascript
jquery解析xml字符串简单示例
2014/04/11 Javascript
利用js制作html table分页示例(js实现分页)
2014/04/25 Javascript
EasyUI中datagrid在ie下reload失败解决方案
2015/03/09 Javascript
JavaScript阻止浏览器返回按钮的方法
2015/03/18 Javascript
学习JavaScript设计模式之观察者模式
2020/04/22 Javascript
javascript cookie基础应用之记录用户名的方法
2016/09/20 Javascript
几句话带你理解JS中的this、闭包、原型链
2016/09/26 Javascript
详解Vue-基本标签和自定义控件
2017/03/24 Javascript
NodeJS处理Express中异步错误
2017/03/26 NodeJs
详解Node.js中exports和module.exports的区别
2017/04/19 Javascript
jq.ajax+php+mysql实现关键字模糊查询(示例讲解)
2018/01/02 Javascript
Vue通过ref父子组件拿值方法
2018/09/12 Javascript
angularjs中判断ng-repeat是否迭代完的实例
2018/09/12 Javascript
JavaScript数组方法的错误使用例子
2018/09/13 Javascript
JavaScript中的 new 命令
2019/05/22 Javascript
element跨分页操作选择详解
2020/06/29 Javascript
[01:34]2014DOTA2 TI预选赛预选赛 选手比赛房大揭秘!
2014/05/20 DOTA
Python实现多进程共享数据的方法分析
2017/12/04 Python
使用python为mysql实现restful接口
2018/01/05 Python
pandas数据框,统计某列数据对应的个数方法
2018/04/11 Python
PyTorch CNN实战之MNIST手写数字识别示例
2018/05/29 Python
Python下opencv图像阈值处理的使用笔记
2019/08/04 Python
Python基于traceback模块获取异常信息
2020/07/23 Python
网页中的电话号码如何实现一键直呼效果_附示例
2016/03/15 HTML / CSS
神路信息Java面试题目
2013/03/31 面试题
《家世》读后感:看家训的力量
2019/12/30 职场文书
Nginx缓存设置案例详解
2021/09/15 Servers
MySQL的prepare使用以及遇到的bug
2022/05/11 MySQL