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 CSS样式控制 学习笔记
Jul 23 Javascript
javascript 图片裁剪技巧解读
Nov 15 Javascript
JQuery调用WebServices的方法和4个实例
May 06 Javascript
node.js中的fs.mkdirSync方法使用说明
Dec 17 Javascript
js中键盘事件实例简析
Jan 10 Javascript
使用Node.js实现HTTP 206内容分片的教程
Jun 23 Javascript
跟我学习javascript的prototype,getPrototypeOf和__proto__
Nov 17 Javascript
基于原生JS实现图片裁剪
Aug 01 Javascript
Vue v2.4中新增的$attrs及$listeners属性使用教程
Jan 08 Javascript
nvm、nrm、npm 安装和使用详解(小结)
Jan 17 Javascript
vue中过滤器filter的讲解
Jan 21 Javascript
CountUp.js实现数字滚动增值效果
Oct 17 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操作Memcache实例介绍
2013/06/14 PHP
PHP array_multisort() 函数的深入解析
2013/06/20 PHP
Thinkphp 框架基础之入口文件功能、定义与用法分析
2020/04/27 PHP
Extjs在exlipse中设置自动提示的方法
2010/04/07 Javascript
jQuery循环滚动展示代码 可应用到文字和图片上
2012/05/11 Javascript
浅析jQuery EasyUI中的tree使用指南
2014/12/18 Javascript
使用jquery动态加载js文件的方法
2014/12/24 Javascript
JavaScript 学习笔记之操作符
2015/01/14 Javascript
原生JS实现仿淘宝网左侧商品分类菜单效果代码
2015/09/10 Javascript
Jquery实现仿京东商城省市联动菜单
2015/11/19 Javascript
js获取鼠标位置实例详解
2015/12/09 Javascript
jquery对象访问是什么及使用方法介绍
2016/05/03 Javascript
Angularjs之filter过滤器(推荐)
2016/11/27 Javascript
原生js实现放大镜特效
2017/03/08 Javascript
webpack3+React 的配置全解
2017/08/21 Javascript
jQuery+datatables插件实现ajax加载数据与增删改查功能示例
2018/04/17 jQuery
node.js到底要不要加分号浅析
2018/07/11 Javascript
基于element-ui封装表单金额输入框的方法示例
2021/01/06 Javascript
学习python处理python编码问题
2011/03/13 Python
Python多线程扫描端口代码示例
2018/02/09 Python
python装饰器深入学习
2018/04/06 Python
Django rest framework实现分页的示例
2018/05/24 Python
Django开发中的日志输出的方法
2018/07/02 Python
python分块读取大数据,避免内存不足的方法
2018/12/10 Python
Django 模型类(models.py)的定义详解
2019/07/19 Python
css3使网页、图片变成灰色兼容大多数浏览器
2014/07/02 HTML / CSS
canvas绘制文本内容自动换行的实现代码
2019/01/14 HTML / CSS
html5 外链式实现加减乘除的代码
2019/09/04 HTML / CSS
西班牙伏林航空公司:Vueling
2016/08/05 全球购物
世界上最大的售后摩托车零配件超市:J&P Cycles
2017/12/08 全球购物
介绍一下木马病毒的种类
2015/07/26 面试题
测绘工程专业个人自我评价
2013/12/01 职场文书
合伙经营协议书
2014/04/18 职场文书
好好学习保证书
2015/02/26 职场文书
Jedis操作Redis实现模拟验证码发送功能
2021/09/25 Redis
Windows11里微软已经将驱动程序安装位置A盘删除
2021/11/21 数码科技