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 相关文章推荐
使用ExtJS技术实现的拖动树结点
Aug 05 Javascript
js中传递特殊字符(+,&amp;)的方法
Jan 16 Javascript
Jquery解析json字符串及json数组的方法
May 29 Javascript
函数window.open实现关闭所有的子窗口
Aug 03 Javascript
JavaScript中的各种操作符使用总结
May 26 Javascript
利用jQuery来动态为属性添加或者删除属性的简单方法
Dec 02 Javascript
基于vue1和vue2获取dom元素的方法
Mar 17 Javascript
angular4强制刷新视图的方法
Oct 09 Javascript
JS实现的图片选择顺序切换和循环切换功能示例【测试可用】
Dec 28 Javascript
jQuery实现的导航条点击后高亮显示功能示例
Mar 04 jQuery
Vue项目前后端联调(使用proxyTable实现跨域方式)
Jul 18 Javascript
vue v-for 点击当前行,获取当前行数据及event当前事件对象的操作
Sep 10 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判断终端是手机还是电脑访问网站的思路及代码
2013/04/24 PHP
PHP根据key删除数组中指定的元素
2019/02/28 PHP
用window.location.href实现刷新另个框架页面
2007/03/07 Javascript
瀑布流布局并自动加载实现代码
2013/03/12 Javascript
jquery复选框全选/取消示例
2013/12/30 Javascript
让alert不出现弹窗的两种方法
2014/05/18 Javascript
JS实现控制表格行文本对齐的方法
2015/03/30 Javascript
js实现新浪微博首页效果
2015/10/16 Javascript
JS实现获取来自百度,Google,soso,sogou关键词的方法
2016/12/21 Javascript
Vue 2.0+Vue-router构建一个简单的单页应用(附源码)
2017/03/14 Javascript
浅谈ES6 模板字符串的具体使用方法
2017/11/07 Javascript
使用socket.io实现简单聊天室案例
2018/01/02 Javascript
Angular6 用户自定义标签开发的实现方法
2019/01/08 Javascript
vue实现分页栏效果
2019/06/28 Javascript
详解JavaScript中精度失准问题及解决方法
2020/02/04 Javascript
[49:54]Ti4 循环赛第三日 LGD vs Titan
2014/07/12 DOTA
[01:10:27]DOTA2-DPC中国联赛正赛 SAG vs XG BO3 第二场 3月5日
2021/03/11 DOTA
Python Web框架Flask下网站开发入门实例
2015/02/08 Python
深入浅出分析Python装饰器用法
2017/07/28 Python
机器学习python实战之手写数字识别
2017/11/01 Python
解决pycharm运行时interpreter为空的问题
2018/10/29 Python
使用python进行拆分大文件的方法
2018/12/10 Python
Python在cmd上打印彩色文字实现过程详解
2019/08/07 Python
Pycharm 2019 破解激活方法图文详解
2019/10/11 Python
Django中的session用法详解
2020/03/09 Python
python开发实例之Python的Twisted框架中Deferred对象的详细用法与实例
2020/03/19 Python
Python日志logging模块功能与用法详解
2020/04/09 Python
python的Jenkins接口调用方式
2020/05/12 Python
澳大利亚最受欢迎的美发和美容在线商店:Catwalk
2018/12/12 全球购物
开业主持词
2014/03/21 职场文书
毕业论文评语大全
2014/04/29 职场文书
求职教师自荐书
2014/06/19 职场文书
小学运动会入场词
2015/07/18 职场文书
劳保用品管理制度范本
2015/08/06 职场文书
python 进阶学习之python装饰器小结
2021/09/04 Python
MySQL分布式恢复进阶
2022/07/23 MySQL