使用AngularJS和HTML做淘宝的部分基础功能

使用AngularJS和HTML做淘宝的一些基础功能


今天用HTML和JS实现以下购物车,然后再用Angualrjs再去实现一下购物车的前端实现。

功能页面分析:

既然是做模仿淘宝购物车,肯定要先去分析一下淘宝的购物车页面,自己去淘宝卖了两件东西,看了下效果;


首先有一个全选功能,全选的时候会把所有的单选框给选中,并且会把所有的金额进行统计。

商品店铺的单选功能:在选择店铺的时候会把下面的商品全部都给选中,并且统计已经勾选的金额。

商品单选功能:选择该商品,并且统计金额,如果所有的商品都被勾选的话,会触发上面的全面框也被勾选,并且统计所有已经勾选的金额。

商品加减功能,对商品的金额进行加减。

删除功能,把该商品从购物车移出去(如果多选框都没选择的话,就弹窗提示"未选择商品",如果全选了也会弹窗"您是否要移除全部商品",都是一些小型的判断)。

购物车如果没有商品了,就会出现去逛逛,购买商品


这就是大概的功能要求,现在来看看代码如何实现:

首先是head部分的有导包(angular.js,也可以把路由的包也导进去,玩意用到了呢):

  1. <script src="angular.js"></script>  
  2.     <script src="angular-route.js"></script>  
  3.     <style>  
  4.         th:hover{color: deepskyblue}  
  5.     </style>  
路由部分(路由功能没用到,就是供大家参考):
  1. <script>  
  2.         var app = angular.module("myApp",["ngRoute"]);  
  3.         app.config(["$routeProvider",function ($routeProvider) {  
  4.             $routeProvider  
  5.                 .when("/one",{  
  6.                     controller:"oneCtrl",  
  7.                     templateUrl:"one.html"  
  8.                 })  
  9.                 .when("/two",{  
  10.                     controller:"twoCtrl",  
  11.                     templateUrl:"two.html"  
  12.                 })  
  13.                 .otherwise({redirectTo:"/one"})  
  14.         }]);  
  15. </script>  
这里是主选择器的主要功能:
  1. app.controller("myCtrl",function ($scope) {  
  2.     $scope.users = [{  
  3.         id:1,  
  4.         state:false,  
  5.         name:"张三",  
  6.         price:12.90,  
  7.         number:2,  
  8.         totalPrice:25.80  
  9.     }];  
  10.       
  11. }/* 减数量 */  
  12. $scope.jian = function (index) {  
  13.     if ($scope.users[index].number > 1){  
  14.         $scope.users[index].number --;  
  15.     }else{  
  16.         if(confirm('确定移除此项嘛?')){  
  17.             $scope.users.splice(index,1);  
  18.         }  
  19.   
  20.     }  
  21. }  
  22. /* 加数量 */  
  23. $scope.jia = function (index) {  
  24.     $scope.users[index].number ++;  
  25. }/* 总价 */  
  26. $scope.sum = function () {  
  27.     var allsum = 0;  
  28.     for(var i = 0;i<$scope.users.length; i++){  
  29.         allsum+= $scope.users[i].price*$scope.users[i].number;  
  30.     }  
  31.     return allsum;  
  32. }/* 删除 */  
  33. $scope.deleteAll = function () {  
  34.     if($scope.checks){  
  35.         if(confirm('您是否要清空购物车?')){  
  36.             $scope.users=[];  
  37.         }  
  38.         if ($scope.users.length == 0){  
  39.             alert("没了");  
  40.         }  
  41.     }else if($scope.checks==false){  
  42.         $scope.pan = false;  
  43.         for(p in $scope.users){  
  44.             if($scope.users[p].state){  
  45.                 $scope.pan = true;  
  46.             }  
  47.         }  
  48.         if ($scope.pan){  
  49.             if(confirm('您是否将所选中商品移除购物车?')){  
  50.                 for(var i = 0;i < $scope.users.length;i++){  
  51.                     if($scope.users[i].state){  
  52.                         $scope.users.splice(i,1)  
  53.                         i--;  
  54.                     }  
  55.                 }  
  56.             }  
  57.         }else{  
  58.             alert("您还未选中商品");  
  59.         }  
  60.     }  
  61. }  
  62. /* 单个删除 */  
  63. $scope.delete = function (index) {  
  64.     if(confirm('您是否将该商品移除购物车?')){  
  65.         $scope.users.splice(index,1);  
  66.     }  
  67. }/* 判断全选 */  
  68. $scope.checks = "";  
  69. $scope.check = function () {  
  70.     if($scope.checks){  
  71.         for(i in $scope.users){  
  72.             $scope.users[i].state = true;  
  73.         }  
  74.     }else{  
  75.         for(i in $scope.users){  
  76.             $scope.users[i].state = false;  
  77.         }  
  78.     }  
  79. }  
  80. /* 单选取消,全选也取消 */  
  81. $scope.xvan = function (index) {  
  82.     if($scope.users[index].state == false){  
  83.         $scope.checks = false;  
  84.     }  
  85. }/* 排序 */  
  86. $scope.ji = 0;  
  87. $scope.order = "";  
  88. $scope.px = function (ji) {  
  89.     if($scope.ji%2==0){  
  90.         $scope.order = "price";  
  91.         $scope.ji++;  
  92.     }else{  
  93.         $scope.order = "-price";  
  94.         $scope.ji++;  
  95.     }  
  96. }  
  97. /* 判断数组长度然后显示或隐藏 */  
  98. $scope.getSize = function () {  
  99.     if($scope.users.length > 0){  
  100.         return false;  
  101.     }else{  
  102.         return true;  
  103.     }  
  104. }  
看完以上的head部分的操作,应该知道body部分里的部门操作了吧,现在就来看看body部分的布局及一些操作:
  1. <center>  
  2.     <div style="width: 1000px">  
  3.         <h1 style="float: left">我的购物车</h1>  
  4.         <br><br><br><br>  
  5.         <hr>  
  6.         <div ng-hide="getSize()">  
  7.             <input style="float: left;margin-top: 10px" placeholder="请输入关键字" ng-model="keyword" type="text">  
  8.             <button style="float: right;background-color: crimson;width: 100px;height: 30px" ng-click="deleteAll()">清空购物车</button>  
  9.             <br><br>  
  10.             <table border="2px" width="1000px" cellspacing="0px" cellpadding="10px">  
  11.                 <thead>  
  12.                 <tr>  
  13.                     <th><input ng-model="checks" ng-click="check()" type="checkbox"></th>  
  14.                     <th>name</th>  
  15.                     <th ng-click="px(ji)">price</th>  
  16.                     <th>number</th>  
  17.                     <th>totalProce</th>  
  18.                     <th>option</th>  
  19.                 </tr>  
  20.                 </thead>  
  21.                 <tbody>  
  22.                 <tr ng-repeat="user in users | filter:keyword | orderBy:order">  
  23.                     <th><input ng-model="user.state" ng-click="xvan($index)" type="checkbox"></th>  
  24.                     <td>{{user.name}}</td>  
  25.                     <td>{{user.price | currency:"¥:"}}</td>  
  26.                     <td>  
  27.                         <input style="background-color: deepskyblue;" value="-" ng-click="jian($index)" type="button">  
  28.                         <input style="width: 20px" ng-model="user.number" ng-change="change($index)" type="text">  
  29.                         <input style="background-color: deepskyblue" value="+" ng-click="jia($index)" type="button"></td>  
  30.                     <td>{{user.price*user.number | currency:"¥:"}}</td>  
  31.                     <td><button style="background-color: deepskyblue" ng-click="delete($index)">删除</button></td>  
  32.                 </tr>  
  33.                 <tr>  
  34.                     <td colspan="6">总价为:<span ng-bind="sum()|currency:'¥:'"></span></td>  
  35.                 </tr>  
  36.                 </tbody>  
  37.             </table>  
  38.         </div>  
  39.   
  40.         <span ng-show="getSize()">您的购物车为空,请先逛<a href="#">购物车</a></span>  
  41.     </div>  
  42.   
  43. </center> 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值