购物车抛物线小球

直接上代码,需自行引入jq

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <style type="text/css">
            .container{
                height: 400px;
                width: 500px;
                margin: 0 auto;
                margin-top: 100px;
                position: relative;
            }
            .reduce,
            .plus{
                width: 20px;
                padding: 5px;
                position: absolute;
                right: 0;
                top: 0;
            }
            .reduce{
                transition: all 0.4s linear;
                opacity: 0;
            }
            .reduce.show{
                opacity: 1;
                transform: translate3d(-50px,0,0);
            }
            .reduce.show img{
                transform: rotate(-180deg);
            }
            .number{
                position: absolute;
                right: 30px;
                top: 0;
                display: inline-block;
                line-height: 34px;
                width: 20px;
                text-align: center;
                display: none;
            }
            .reduce img,
            .plus img{
                width: 100%;
                transition: all 0.4s linear;
            }
            .cart{
                position: absolute;
                bottom: 0;
                left: 0;
                width: 40px;
                height: 40px;
                border-radius: 50%;
                background: #008ADD;
                font-size: 12px;
                color: #fff;
            }
            .cart img{
                width: 30px;
                height: 30px;
                margin-left: 5px;
                margin-top: 5px;
            }

            .balls{
                position: absolute;
                bottom: 30px;
                left: 11px;
            }
            .ballcontainer{
                position: absolute;
                left: 0;
                top: 0;
                width: 20px;
                height: 20px;
                display: none;
                transition: all 0.4s cubic-bezier(0.49,-0.29,0.75,0.41);
            }
            .ballcontainer[show=false]{
                display: none;
            }
            .balls .ball{
                width: 20px;
                height: 20px;
                background: #008ADD;
                border-radius: 50%;
                transition: all 0.4s linear;
            }
        </style>
    </head>
    <body>
        <div class="container">
            <div class="reduce" onclick="reduce()">
                <img src="reduce.png"/>
            </div>
            <span class="number">0</span>
            <div class="plus" onclick="plus(this)">
                <img src="plus.png"/>
            </div>


            <div class="cart">
                <img src="cart.png"/>
            </div>
            <!--5个小球,用户快速点击时可同时存在多个-->
            <div class="balls">
                <div class="ballcontainer" show="false"><div class="ball"></div></div>
                <div class="ballcontainer" show="false"><div class="ball"></div></div>
                <div class="ballcontainer" show="false"><div class="ball"></div></div>
                <div class="ballcontainer" show="false"><div class="ball"></div></div>
                <div class="ballcontainer" show="false"><div class="ball"></div></div>
            </div>
        </div>
    </body>


    <script src="../js/jquery.min.js"></script>
    <script type="text/javascript">
        function plus(el){
            var oldNumber = parseInt($('.number').text());
            oldNumber++;
            $('.number').show();
            $('.number').text(oldNumber);
            $('.reduce').addClass('show');
            drop(el);
        }

        function reduce(){
            var oldNumber = parseInt($('.number').text());
            oldNumber--;
            if(oldNumber <= 0){
                oldNumber = 0;
                $('.number').hide();
                $('.reduce').removeClass('show');
            }
            $('.number').text(oldNumber);
        }

        function drop(el){
            var ballcontainers = $(".ballcontainer");
            var offset = $(el).offset();
            var oldoffset = $('.balls').offset();//获取小球的起始位置
            for (var i = 0;i < ballcontainers.length; i++) {
                if($(ballcontainers[i]).attr('show') == 'false'){
                    $(ballcontainers[i]).attr('show','true');
                    var y = -(oldoffset.top - offset.top); 
                    var x = offset.left - oldoffset.left;
                    $(ballcontainers[i]).css('webkitTransform','translate3d(0,'+ y +'px,0)');
                    $(ballcontainers[i]).children('.ball').css('webkitTransform','translate3d(' + x + 'px,0,0)');
                    $(ballcontainers[i]).css('display','block');
                    setTimeout(function(){//不加这个看不见小球
                        $(ballcontainers[i]).css('webkitTransform','translate3d(0,0,0)');
                        $(ballcontainers[i]).children('.ball').css('webkitTransform','translate3d(0,0,0)');
                    },10)
                    var rf = $(ballcontainers[i]).offset();//未使用,仅仅用来触发浏览器重绘,不加这个会有问题
                    return;
                }
            }
        }

        $('.ballcontainer .ball').on('transitionend',function(){
            $(this).closest('.ballcontainer').css('display','none');
            $(this).closest('.ballcontainer').attr('show','false');
        })
//      console.log(document.getElementsByClassName('plus')[0].getBoundingClientRect())//getBoundingClientRect可以获取元素的位置
    </script>
</html>
js加入购物车抛物线动画与购物车效果特效,亲测可用, 当您在电商购物网站浏览中意的商品时,您可以点击页面中的“加入购物车”按钮即可将商品加入的购物车中。本文介绍借助一款基于jQuery的动画插件,点击加入购物车按钮时,实现商品将飞入到右侧的购物车中的效果。 HTML 首先载入jQuery库文件和jquery.fly.min.js插件。 复制代码 代码如下: 接着,将商品信息html结构布置好,本例中,我们用四个商品并排布置,每个商品box中包括有商品图片、价格、名称以及加入购物车按钮等信息。 复制代码 代码如下: ¥3499.00 LG 49LF5400-CA 49寸IPS硬屏富贵招财铜钱设计 加入购物车 ¥3799.00 Hisense/海信 LED50T1A 海信电视官方旗舰店 加入购物车 ¥¥3999.00 Skyworth/创维 50E8EUS 8核4Kj极清酷开系统智能液晶电视 加入购物车 ¥6969.00 乐视TV Letv X60S 4核1080P高清3D安卓智能超级电视 加入购物车 然后,我们还需要在页面的右侧加上购物车以及提示信息。 复制代码 代码如下: 购物车 已成功加入购物车! 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;t
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值