jQuery模擬實(shí)現(xiàn)天貓購(gòu)物車動(dòng)畫效果實(shí)例代碼
一、功能描述:
1、點(diǎn)擊購(gòu)買按鈕,模擬拋物線將物品彈到購(gòu)物車?yán)铮?/p>
2、購(gòu)物車添加物品后,顯示+1動(dòng)畫;
效果圖如下:
實(shí)現(xiàn)如下:
1、導(dǎo)入jquery相關(guān)的包:
<script type="text/javascript" src="jquery-2.1.1.min.js"></script> <script src="jquery.fly.min.js"></script>
2、html文件內(nèi)容:
<!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"> <title>jQuery實(shí)現(xiàn)模擬天貓加入購(gòu)物車飛入動(dòng)畫效果</title> <meta name="keywords" content="jquery,購(gòu)物車" /> <body> <div id="main"> <div class="demo"> <div class="box orange button addcar"> <div style="padding-top:55px"> 土豪,請(qǐng)猛擊我,加入購(gòu)物車 </div> </div> </div> </div> <div class="m-sidebar"> <div class="cart"> <i id="end"></i> <span>購(gòu)物車</span> </div> </div> </div> </body>
3、css樣式:
<style type="text/css"> .demo{width:820px; margin:60px auto 10px auto} .m-sidebar{position: fixed;top: 0;right: 0;background: #000;z-index: 2000;width: 85px;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:10 0 0 0;} .cart i{width:50px;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} .box{width:300px; height:150px; border:1px solid #e0e0e0; text-align:center} .u-flyer{display: block;width: 50px;height: 50px;border-radius: 50px;position: fixed;z-index: 9999;} .button { display: inline-block; outline: none; cursor: pointer; text-align: center; text-decoration: none; font: 16px/100% 'Microsoft yahei',Arial, Helvetica, sans-serif; padding: .5em 2em .55em; text-shadow: 0 1px 1px rgba(0,0,0,.3); -webkit-border-radius: .5em; -moz-border-radius: .5em; border-radius: .5em; -webkit-box-shadow: 0 1px 2px rgba(0,0,0,.2); -moz-box-shadow: 0 1px 2px rgba(0,0,0,.2); box-shadow: 0 1px 2px rgba(0,0,0,.2); } .button:hover { text-decoration: none; } .button:active { position: relative; top: 1px; } /* orange */ .orange { color: #fef4e9; border: solid 1px #da7c0c; background: #f78d1d; background: -webkit-gradient(linear, left top, left bottom, from(#faa51a), to(#f47a20)); background: -moz-linear-gradient(top, #faa51a, #f47a20); filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#faa51a', endColorstr='#f47a20'); } .orange:hover { background: #f47c20; background: -webkit-gradient(linear, left top, left bottom, from(#f88e11), to(#f06015)); background: -moz-linear-gradient(top, #f88e11, #f06015); filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f88e11', endColorstr='#f06015'); } .orange:active { color: #fcd3a5; background: -webkit-gradient(linear, left top, left bottom, from(#f47a20), to(#faa51a)); background: -moz-linear-gradient(top, #f47a20, #faa51a); filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f47a20', endColorstr='#faa51a'); }
4、核心的JQuery代碼:
<script> //實(shí)現(xiàn)購(gòu)物車+1動(dòng)畫效果 (function ($) { $.extend({ tipsBox: function (options) { options = $.extend({ obj: null, //jq對(duì)象,要在那個(gè)html標(biāo)簽上顯示 str: "+1", //字符串,要顯示的內(nèi)容 startSize: "18px", //動(dòng)畫開始的文字大小 endSize: "38px", //動(dòng)畫結(jié)束的文字大小 interval: 600, //動(dòng)畫時(shí)間間隔 color: "red", //文字顏色 callback: function () { } //回調(diào)函數(shù) }, options); $("body").append("<span class='num'>" + options.str + "</span>"); var box = $(".num"); var left = options.obj.offset().left + options.obj.width() / 2; var top = options.obj.offset().top - options.obj.height(); box.css({ "position": "absolute", "left": left + "px", "top": top + "px", "z-index": 9999, "font-size": options.startSize, "line-height": options.endSize, "color": options.color }); box.animate({ "font-size": options.endSize, "opacity": "0", "top": top - parseInt(options.endSize) + "px" }, options.interval, function () { box.remove(); options.callback(); }); } }); })(jQuery); function niceIn(prop){ prop.find('i').addClass('niceIn'); setTimeout(function(){ prop.find('i').removeClass('niceIn'); },1000); } //實(shí)現(xiàn)拋物線動(dòng)畫功能 $(function() { var offset = $("#end").offset(); $(".addcar").click(function(event){ var addcar = $(this); var img = "images/lg.jpg"; var flyer = $('<img class="u-flyer" src="'+img+'">'); flyer.fly({ start: { left: event.pageX, top: event.pageY }, end: { left: offset.left+10, top: offset.top+10, width: 0, height: 0 }, onEnd: function(){ $.tipsBox({ obj: $("#end"), str: "<b style='font-family:Microsoft YaHei;'>+1</b>", callback: function () { } }); niceIn($("#end")); } }); }); }); </script>
以上所述是小編給大家介紹的jQuery模擬實(shí)現(xiàn)天貓購(gòu)物車動(dòng)畫效果實(shí)例代碼,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
jquery實(shí)現(xiàn)input輸入框?qū)崟r(shí)輸入觸發(fā)事件代碼
如何實(shí)現(xiàn)input輸入框?qū)崟r(shí)輸入觸發(fā)事件,下面有個(gè)不不錯(cuò)的示例使用jquery實(shí)現(xiàn)的,感興趣的朋友可以參考下2014-01-01jquery 抽獎(jiǎng)小程序?qū)崿F(xiàn)代碼
這篇文章主要介紹了jquery 抽獎(jiǎng)小程序的相關(guān)資料,這里提供了詳細(xì)的思路及實(shí)現(xiàn)代碼和實(shí)現(xiàn)效果圖,需要的朋友可以參考下2016-10-10Spring MVC中Ajax實(shí)現(xiàn)二級(jí)聯(lián)動(dòng)的簡(jiǎn)單實(shí)例
下面小編就為大家?guī)硪黄猄pring MVC中Ajax實(shí)現(xiàn)二級(jí)聯(lián)動(dòng)的簡(jiǎn)單實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-07-07jquery自動(dòng)填充勾選框即把勾選框打上true
jquery自動(dòng)填充勾選框,即把勾選框打上(true),然后通過ajax方式獲得勾選項(xiàng)列表,再把列表內(nèi)的選項(xiàng)打上2014-03-03jQuery 源碼分析筆記(5) jQuery.support
接下來是非常糾結(jié)的一個(gè)話題,也是所有JS庫必須實(shí)現(xiàn)的一個(gè)功能:瀏覽器兼容性和為開發(fā)者屏蔽這些差異。2011-06-06jquery tools之tabs 選項(xiàng)卡/頁簽
jquery用這么久了,覺得雖然沒ExtJS等框架全面,功能強(qiáng)大,但是也確實(shí)做到了“the write less,do more”,而且學(xué)起來也方便,只需要仔細(xì)研讀一下它官方網(wǎng)站的API Reference,操作起來基本問題不是太大。2009-07-07