jQuery.fly插件实现添加购物车抛物线效果

样例

使用电商 APP 购买商品时,很多都有上图的红色小球抛物线效果,下面通过 jQuery.fly 插件来实现一个简单 Demo。

实现

简单思路:

  1. 确定抛物线的起始和终止位置;
  2. 通过 js 在起始位置创建一个 document 对象,作为红色小球;
  3. 通过 jQuery.fly 插件提供的fly函数来移动小球,移动至终止位置;
  4. 当小球到达终止位置后,通过fly插件提供的 onEnd 回调函数,将小球销毁;

Demo 源码:

<!DOCTYPE html>
<html lang="zh" style="font-size: 46.875px;">
<head>
    <meta charset="UTF-8">
    <title>fly Demo</title>
    <style>
        td {height: 300px;}
        table {width:100%;}
        img {width: 30%;}
    </style>
    <script type="text/javascript" src="../js/jquery-1.8.0.min.js"></script>
    <script type="text/javascript" src="../js/fly.min.js"></script>
    <script type="text/javascript">
        function fly() {
            var x = $("#fashe").offset().left;
            var y = $("#fashe").offset().top;
            pwxTex(x, y);
        }
        // 抛物线特效
        function pwxTex(x, y) {
            var speedI = $("#speedI").val();
            var leftI = $("#b_leftI").val();
            var topI = $("#b_topI").val();

            // 获得目标的偏移量
            var offset = $(‘#jieshou‘).offset();
            var div = document.createElement(‘div‘);
            div.className = ‘pao‘;
            div.style.cssText = ‘transform: translate3d(0, 0, 0);‘ +
                                ‘width: 0.75rem;‘ +
                                ‘height: 0.75rem;‘ +
                                ‘border-radius: 50%;‘ +
                                ‘background: red;‘ +
                                ‘position: fixed;‘ +
                                ‘z-index: 99999999;‘ +
                                ‘top:‘+x+‘px;left:‘+y+‘px‘;
            // 将生成的 div 写入 body 标签下
            $(‘body‘).append(div);
            // 获得生成的抛物线效果对象
            var flyer = $(‘.pao‘);
            var e_leftI = $(‘#e_leftI‘).val();
            var e_topI = $(‘#e_topI‘).val();
            flyer.fly({
                start: {
                    left: x - leftI,
                    top: y - topI
                },
                end: {
//                  left: (offset.left + $(‘#jieshou‘).width() / 2), //结束位置
//                  top: (offset.top + $(‘#jieshou‘).height() / 1)
                    left : e_leftI,
                    top : e_topI
                },
                speed: speedI, // 越大越快,默认1.2
                onEnd: function () { // 结束回调
                    $(‘#jieshou‘).css({‘transform‘: ‘scale(1)‘}, 100);
                    this.destory(); // 销毁这个对象
                }
            });
        }
    </script>
</head>
<body>
    <div>
        <table>
            <tr>
                <td>zhengbin.cnblogs.com</td>
                <td>
                    <img id="fashe" src="../img/tank.jpg">
                </td>
            </tr>
            <tr>
                <td>
                    <img id="jieshou" src="../img/lajitong.jpg">
                </td>
                <td>
                    speed:<input id="speedI" type="text" value="2">
                    <br>
                    b_left:<input id="b_leftI" type="text" value="1">
                    <br>
                    b_top:<input id="b_topI" type="text" value="-10">
                    <br>
                    e_left:<input id="e_leftI" type="text" value="100">
                    <br>
                    e_top:<input id="e_topI" type="text" value="500">
                    <br>
                    <button onclick="fly()">飞吧~~</button>
                </td>
            </tr>
        </table>
    </div>
</body>
</html>

Demo 实现效果

时间: 2024-10-22 22:16:04

jQuery.fly插件实现添加购物车抛物线效果的相关文章

jquery自定义插件来实现分页的效果

本节将介绍如何定义自己的jquery插入,实现分页效果,话不多说,.看看达到的效果: 分页插件 实现的代码例如以下: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <meta charset="utf-8"> <title>p

非常简单的使用jquery fancybox插件实现的查看图片效果

<html> 其中用到了bootstrap的图片处理,响应式图片属性img-responsive,和图片形状,img-thumbnail 写成 class="img-responsive img-thumbnail" 然后fancybox直接用默认 $("a.grouped_elements").fancybox();    $()这里的是选择器. <head> <title> </title> <meta ht

JQuery模拟实现天猫购物车动画效果

测试程序源代码下载地址:源码 一.功能描述: 1.点击购买按钮,模拟抛物线将物品弹到购物车里: 2.购物车添加物品后,显示+1动画: 效果图如下: 实现如下: 1.导入jquery相关的包: <script type="text/javascript" src="jquery-2.1.1.min.js"></script> <script src="jquery.fly.min.js"></script&

jQuery插件实例四:手风琴效果[无动画版]

手风琴效果就是内容的折叠与打开,在这个插件中,使用了三种数据来源:1.直接写在DOM结构中:2.将数据写在配置项中:3.从Ajax()中获取数据.在这一版中,各项的切换没有添加动画效果,在下一版中会是有动画效果的. 在这个插件中,CSS和JS的配置非常重要,需要特别注意.另外,加个思考,请先看完后再想这个问题:当点击其中某项时,给width直接添加animate是否合适,当快速在其上移动时,如何保证效果? 效果图预览 插件JS accordionB.js 1 ; 2 (function ($,

BootStrap入门教程 (四) :JQuery类库插件(模态窗口,滚动监控,标签效果,提示效果,“泡芙”效果,警告区域,折叠效果,旋转木马,输入提示)

上讲回顾:Bootstrap组件丰富同时具有良好可扩展性,能够很好地应用在生产环境.这些组件包括按钮(Button),导航(Navigation),缩略图( thumbnails),提醒(Alert),进度条(progress bar)等,能够很好减少前端工程师的代码量,实现更加丰富充实的页面. Bootstrap作为一套良好的前端工具,要实现现代的动态页面效果,javascript插件是必不可少的.它提供了12个基于JQuery类库的插件,包括模态窗口(Modals),滚动监控(Scrolls

【JQuery插件】扑克正反面翻牌效果

里面有两个demo,支持X横向和Y纵向翻转两个效果. 对元素的布局有一定的讲究,需要分析一下demo的css. 默认翻转速度为80,不要大于100ms. <!DOCTYPE> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>[JQuery插件]扑克正反面翻牌效果</ti

jquery mutilselect 插件添加中英文自动补全

jquery mutilselect默认只能根据设置的option来进行自动提示 $.each(availableTags, function(key, value) { $('#channels') .append($("<option></option>") .attr("value",value) .text(value)); //默认按text中的value来自动提示 }); 阅读下面的需求: 有这么几个选项: 北京 天津 湖北 输入

ECSHOP添加购物车加图片飞入效果

为ECSHOP的添加购物车,加入图片飞入效果. 首先: 在goods.dwt中查找添加购物车按钮: 为添加购物车按钮加上id: 例如: <a id="iproduct_{$goods.goods_id}" href="javascript:{addToCart({$goods.goods_id})"> <img src="images/bnt_cat.gif" /></a> 然后:在js中加入: <scr

JavaScript之jQuery-9 jQuery 开发插件(添加新全局函数、添加jQuery对象方法、添加新简写方法、方法参数)

一.添加新的全局函数 全局函数 - 全局函数,实际上就是jQuery对象的方法,从实践角度看,它们是位于jQuery命名空间内部的函数 - jQuery内置的某些功能是通过全局函数实现的 - $.ajax()函数就是典型的全局函数 - 向jQuery命名空间添加一个函数,只需要将这个新函数指定为jQuery的一个属性值   - 如果要使用该全局函数时,可通过一下代码调用 - 也可以通过别名来调用 添加多个函数 - 如果我们想在插件中提供多个全局函数,可以独立的声明这些函数   - 还可以使用$.