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 相关文章推荐
JS option location 页面跳转实现代码
Dec 27 Javascript
js操作iframe兼容各种主流浏览器示例代码
Jul 22 Javascript
基于js与flash实现的网站flv视频播放插件代码
Oct 14 Javascript
使用JavaScript 编写简单计算器
Nov 24 Javascript
JS如何判断是否为ie浏览器的方法(包括IE10、IE11在内)
Dec 13 Javascript
微信小程序 wxapp导航 navigator详解
Oct 31 Javascript
AngularJS实现路由实例
Feb 12 Javascript
自定义类似于jQuery UI Selectable 的Vue指令v-selectable
Aug 23 jQuery
实例分析JS与Node.js中的事件循环
Dec 12 Javascript
js事件on动态绑定数据,绑定多个事件的方法
Sep 15 Javascript
vue实现二级导航栏效果
Oct 19 Javascript
Vue Render函数创建DOM节点代码实例
Jul 08 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中=赋值操作符对不同数据类型的不同行为
2011/01/02 PHP
学习使用curl采集curl使用方法
2012/01/11 PHP
php微信公众平台开发类实例
2015/04/01 PHP
简单实现php上传文件功能
2017/09/21 PHP
PHP安装BCMath扩展的方法
2019/02/13 PHP
thinkphp5.1框架容器与依赖注入实例分析
2019/07/23 PHP
IE8 兼容性问题(属性名区分大小写)
2009/06/04 Javascript
jquery.bgiframe.js在IE9下提示INVALID_CHARACTER_ERR错误
2013/01/11 Javascript
jquery 合并内容相同的单元格(示例代码)
2013/12/13 Javascript
Javascript实现获取窗口的大小和位置代码分享
2014/12/04 Javascript
javascript模拟命名空间
2015/04/17 Javascript
浅谈javascript实现八大排序
2015/04/27 Javascript
JQuery zClip插件实现复制页面内容到剪贴板
2015/11/02 Javascript
Angular 输入框实现自定义验证功能
2017/02/19 Javascript
AngularJS监听路由变化的方法
2017/03/07 Javascript
常用的 JS 排序算法 整理版
2018/04/05 Javascript
vue源码nextTick使用及原理解析
2019/08/13 Javascript
解决vue中使用proxy配置不同端口和ip接口问题
2019/08/14 Javascript
Vue+Vant 图片上传加显示的案例
2020/11/03 Javascript
js重写alert事件(避免alert弹框标题出现网址)
2020/12/04 Javascript
Python基本数据类型详细介绍
2014/03/11 Python
Python程序员面试题 你必须提前准备!
2018/01/16 Python
Python 静态方法和类方法实例分析
2019/11/21 Python
python实现连续变量最优分箱详解--CART算法
2019/11/22 Python
Django REST 异常处理详解
2020/07/15 Python
Pycharm Git 设置方法
2020/09/15 Python
使用phonegap操作数据库的实现方法
2017/03/31 HTML / CSS
美国在线家装零售商:Build.com
2016/09/02 全球购物
美国最灵活的移动提供商:Tello
2017/07/18 全球购物
萨克斯第五大道英国:Saks Fifth Avenue英国
2019/04/01 全球购物
军训自我鉴定200字
2014/02/13 职场文书
库房保管员岗位职责
2014/04/07 职场文书
社区义诊活动总结
2014/04/30 职场文书
单位实习工作证明怎么写
2014/11/02 职场文书
廉政承诺书
2015/01/19 职场文书
jquery插件实现代码雨特效
2021/04/24 jQuery