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 相关文章推荐
JavaScript Math.ceil() 函数使用介绍
Dec 11 Javascript
jquery序列化form表单使用ajax提交后处理返回的json数据
Mar 03 Javascript
node.js入门教程
Jun 01 Javascript
a标签click和href执行顺序探讨
Jun 23 Javascript
JavaScript父子窗体间的调用方法
Mar 31 Javascript
微信小程序request出现400的问题解决办法
May 23 Javascript
vue组件实现文字居中对齐的方法
Aug 23 Javascript
解析vue中的$mount
Dec 21 Javascript
Vue项目中最新用到的一些实用小技巧
Nov 06 Javascript
原生JS实现的跳一跳小游戏完整实例
Jan 27 Javascript
微信小程序防止多次点击跳转和防止表单组件输入内容多次验证功能(函数防抖)
Sep 19 Javascript
微信小程序修改数组长度的问题的解决
Dec 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自定义加密与解密程序实例
2014/12/31 PHP
PHP实现图片不变型裁剪及图片按比例裁剪的方法
2016/01/14 PHP
Linux平台php命令行程序处理管道数据的方法
2016/11/10 PHP
PHP开发api接口安全验证操作实例详解
2020/03/26 PHP
JS 控制非法字符的输入代码
2009/12/04 Javascript
仅IE支持clearAttributes/mergeAttributes方法使用介绍
2012/05/04 Javascript
JS中获取数据库中的值的方法
2013/07/14 Javascript
一个获取第n个元素节点的js函数
2014/09/02 Javascript
javascript去除空格方法小结
2015/05/21 Javascript
基于javascript编写简单日历
2016/05/02 Javascript
深入理解JavaScript中的并行处理
2016/09/22 Javascript
JS控制FileUpload的上传文件类型实例代码
2016/10/07 Javascript
微信小程序 progress组件详解及实例代码
2016/10/25 Javascript
js实现添加删除表格(两种方法)
2017/04/27 Javascript
小程序接口的promise化的实现方法
2019/12/11 Javascript
Vue打包部署到Nginx时,css样式不生效的解决方式
2020/08/03 Javascript
vue组件开发之tab切换组件使用详解
2020/08/21 Javascript
[02:27]DOTA2英雄基础教程 莱恩
2014/01/17 DOTA
Python字典操作简明总结
2015/04/13 Python
详解在Python程序中自定义异常的方法
2015/10/16 Python
python3 与python2 异常处理的区别与联系
2016/06/19 Python
使用python3+xlrd解析Excel的实例
2018/05/04 Python
pandas DataFrame 删除重复的行的实现方法
2019/01/29 Python
Python实现最大子序和的方法示例
2019/07/05 Python
Python PIL读取的图像发生自动旋转的实现方法
2019/07/05 Python
python3 mmh3安装及使用方法
2019/10/09 Python
Pycharm 跳转回之前所在页面的操作
2021/02/05 Python
世界知名接发和假发品牌:Poze Hair
2017/03/08 全球购物
美国花布包包品牌:Vera Bradley
2017/08/11 全球购物
Spartoo荷兰:鞋子、包包和服装
2018/07/12 全球购物
旅游管理毕业生自荐信
2013/11/05 职场文书
社区十八大感言
2014/01/19 职场文书
2014教师教育实践活动对照检查材料思想汇报
2014/09/21 职场文书
安全生产先进个人事迹材料
2014/12/30 职场文书
奖学金主要事迹范文
2015/11/04 职场文书
解决Redis启动警告问题
2022/02/24 Redis