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 最简单易用的表单验证插件
Feb 27 Javascript
点击button获取text内容并改变样式的js实现
Sep 09 Javascript
JavaScript中的数值范围介绍
Dec 29 Javascript
jquery专业的导航菜单特效代码分享
Aug 29 Javascript
jQuery中的each()详细介绍(推荐)
May 25 Javascript
Javascript实现汉字和拼音互转的终极方案
Oct 19 Javascript
vue中如何引入jQuery和Bootstrap
Apr 10 jQuery
angular4自定义组件详解
Sep 28 Javascript
Gulp实现静态网页模块化的方法详解
Jan 09 Javascript
vue中接口域名配置为全局变量的实现方法
Sep 20 Javascript
jQuery判断自定义属性data-val用法示例
Jan 07 jQuery
AngularJS动态生成select下拉框的方法实例
Nov 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给图片加水印的实现代码
2020/04/18 PHP
PHP unlink与rmdir删除目录及目录下所有文件实例代码
2018/02/07 PHP
在textarea中显示html页面的javascript代码
2007/04/20 Javascript
jQuery中的常用事件总结
2009/12/27 Javascript
Struts2的s:radio标签使用及用jquery添加change事件
2013/04/08 Javascript
js判断iframe内的网页是否滚动到底部触发事件
2014/03/18 Javascript
14款NodeJS Web框架推荐
2014/07/11 NodeJs
c#程序员对TypeScript的认识过程
2015/06/19 Javascript
javascript实现列表滚动的方法
2015/07/30 Javascript
JS+CSS实现简单的二级下拉导航菜单效果
2015/09/21 Javascript
AngularJS 入门教程之事件处理器详解
2016/08/19 Javascript
js仿小米官网图片轮播特效
2016/09/29 Javascript
jQuery点击导航栏选中更换样式的实现代码
2017/01/23 Javascript
Vue.js中数据绑定的语法教程
2017/06/02 Javascript
浅谈Vue.js中ref ($refs)用法举例总结
2017/12/19 Javascript
vue获取当前激活路由的方法
2018/03/17 Javascript
vue对storejs获取的数据进行处理时遇到的几种问题小结
2018/03/20 Javascript
详解vue的diff算法原理
2018/05/20 Javascript
JS把字符串格式的时间转换成几秒前、几分钟前、几小时前、几天前等格式
2019/07/10 Javascript
Python爬取网页中的图片(搜狗图片)详解
2017/03/23 Python
Python 查找字符在字符串中的位置实例
2018/05/02 Python
python3下载抖音视频的完整代码
2019/06/05 Python
使用python 写一个静态服务(实战)
2019/06/28 Python
Python3分析处理声音数据的例子
2019/08/27 Python
利用简洁的图片预加载组件提升html5移动页面的用户体验
2016/03/11 HTML / CSS
HTML5 表单验证失败的提示语问题
2017/07/13 HTML / CSS
最经典的商业地产项目广告词
2014/03/13 职场文书
健康家庭事迹材料
2014/05/02 职场文书
询价采购方案
2014/06/09 职场文书
学校食堂食品安全责任书
2014/07/28 职场文书
党的群众路线教育实践活动个人整改措施
2014/10/27 职场文书
九华山导游词
2015/02/03 职场文书
2015年安全保卫工作总结
2015/05/14 职场文书
体育委员竞选稿
2015/11/21 职场文书
Python提取PDF指定内容并生成新文件
2021/06/09 Python
【海涛DOTA解说】EVE女子战队独家录像加ZSMJ神牛两连发
2022/04/01 DOTA