前端经典案例——购物车,jquery实现 -ag凯发k8国际
ag凯发k8国际
收集整理的这篇文章主要介绍了
前端经典案例——购物车,jquery实现
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
jquey实现
品优购案例
giteee项目地址
https://gitee.com/lyh1999/shopping_cart
car.js部分
$(function() {// 1全选模块// 1.1将全选按钮checkall状态赋值到三个小按钮j-checkbox上$(".checkall").change(function() {// console.log($(this).prop('checked'));$('.j-checkbox, .checkall').prop('checked', $(this).prop('checked'))if ($(this).prop('checked')) {// 让所有商品添加check-cart-item类名$('.cart-item').addclass('check-cart-item')} else {$('.cart-item').removeclass('check-cart-item')}})// 1.2通过小按钮选中全选按钮$('.j-checkbox').change(function() {// 如果小按钮全部选中,全选按钮选中,否则不被选中// console.log($('.j-checkbox:checked').length);if ($('.j-checkbox:checked').length === $('.j-checkbox').length) {$('.checkall').prop('checked', true)} else {$('.checkall').prop('checked', false)}if ($(this).prop('checked')) {// 让所有商品添加check-cart-item类名$(this).parents('.cart-item').addclass('check-cart-item')} else {$(this).parents('.cart-item').removeclass('check-cart-item')}})// 2商品模块// 2.1商品数量增加// 点击加号increment让这个值 ,赋值给文本框,只增加本商品数量兄弟文本框itxt值// 修改表单val(),在文本框原有数值上相加$('.increment').click(function() {// 得到当前兄弟文本框的值var n = $(this).siblings('.itxt').val();// console.log(n);n;$(this).siblings('.itxt').val(n)// 2.1.1商品小计// 点击加号或减号,根据文本框的数值乘以当前商品的价格,只计算当前商品小计(p-sum)// 修改普通元素内容方法text(),当前商品价格去除¥/$后再相乘,// 截取字符串substr(1)从第一个位置开始截取,保留两位小数tofixed(2)// var p = $(this).parent().parent().siblings('.p-price').html();var p = $(this).parents(".p-num").siblings('.p-price').html();// console.log(p);p = p.substr(1);var price = (p * n).tofixed(2);$(this).parents(".p-num").siblings('.p-sum').html("¥" price);// $(this).parent().parent().siblings('.p-sum').html("¥" p * n)getsum();})// 2.2商品数量减少// 点击加号decrement让这个值--,赋值给文本框,只减少本商品数量兄弟文本框itxt值// 修改表单val(),在文本框原有数值上相减// 如果n值为1,不再减少$('.decrement').click(function() {// 得到当前兄弟文本框的值var n = $(this).siblings('.itxt').val();// console.log(n);if (n == 1) {return false}n--;$(this).siblings('.itxt').val(n)// 2.1.1商品小计// 点击加号或减号,根据文本框的数值乘以当前商品的价格,只计算当前商品小计(p-sum)// 修改普通元素内容方法text(),当前商品价格去除¥/$后再相乘,截取字符串substr(1)从第一个位置开始截取var p = $(this).parents(".p-num").siblings('.p-price').html();// console.log(p);p = p.substr(1);var price = (p * n).tofixed(2);$(this).parents(".p-num").siblings('.p-sum').text("¥" price);// $(this).parent().parent().siblings('.p-sum').html("¥" p * n)getsum();})// 3用户修改文本框的值计算小计$('.itxt').change(function() {// 先得到文本框的值乘以当前商品单价var n = $(this).val();var p = $(this).parents('.p-num').siblings('.p-price').html()p = p.substr(1);var price = (p * n).tofixed(2);$(this).parents(".p-num").siblings('.p-sum').html("¥" price);getsum();})getsum();// 4总和总额function getsum() {var count = 0; //计算总件数var money = 0; //计算总价钱// 总件$('.itxt').each(function(i, ele) {count = parseint($(ele).val());})$('.amount-sum em').text(count);// 总额$('.p-sum').each(function(i, ele) {money = parsefloat($(ele).text().substr(1));})$('.price-sum em').text("¥" money.tofixed(2));}// 5删除商品// 点击按钮删除商品$('.p-action a').click(function() {$(this).parents('.cart-item').remove();getsum();});// 点击删除选中的商品$('.remove-batch').click(function() {// 删除复选框选中的商品$('.j-checkbox:checked').parents('.cart-item').remove();getsum();});// 清空购物车$('.clear-all').click(function() {$('.cart-item').remove();getsum();})})css部分
1base.css
2car.css
.car-header {padding: 20px 0; }.car-logo img {vertical-align: middle; }.car-logo b {font-size: 20px;margin-top: 20px;margin-left: 10px; }.cart-filter-bar {font-size: 16px;color: #e2231a;font-weight: 700; }.cart-filter-bar em {padding: 5px;border-bottom: 1px solid #e2231a; }.cart-thead {height: 32px;line-height: 32px;margin: 5px 0 10px;padding: 5px 0;background: #f3f3f3;border: 1px solid #e9e9e9;border-top: 0;position: relative; }.cart-thead>div, .cart-item>div {float: left; }.t-checkbox, .p-checkbox {height: 18px;line-height: 18px;padding-top: 7px;width: 122px;padding-left: 11px; }.t-goods {width: 400px; }.t-price {width: 120px;padding-right: 40px;text-align: right; }.t-num {width: 150px;text-align: center; }.t-sum {width: 100px;text-align: right; }.t-action {width: 130px;text-align: right; }.cart-item {height: 160px;border-style: solid;border-width: 2px 1px 1px;border-color: #aaa #f1f1f1 #f1f1f1;background: #fff;padding-top: 14px;margin: 15px 0; }.check-cart-item {background: #fff4e8; }.p-checkbox {width: 50px; }.p-goods {margin-top: 8px;width: 565px; }.p-img {float: left;border: 1px solid #ccc;padding: 5px; }.p-msg {float: left;width: 210px;margin: 0 10px; }.p-price {width: 110px; }.quantity-form {width: 80px;height: 22px; }.p-num {width: 170px; }.decrement, .increment {float: left;border: 1px solid #cacbcb;height: 18px;line-height: 18px;padding: 1px 0;width: 16px;text-align: center;color: #666;margin: 0;background: #fff;margin-left: -1px; }.itxt {float: left;border: 1px solid #cacbcb;width: 42px;height: 18px;line-height: 18px;text-align: center;padding: 1px;margin: 0;margin-left: -1px;font-size: 12px;font-family: verdana;color: #333;-webkit-appearance: none; }.p-sum {font-weight: 700;width: 145px; }/* 结算模块 */.cart-floatbar {height: 50px;border: 1px solid #f0f0f0;background: #fff;position: relative;margin-bottom: 50px;line-height: 50px; }.select-all {float: left;height: 18px;line-height: 18px;padding: 16px 0 16px 9px;white-space: nowrap; }.select-all input {vertical-align: middle;display: inline-block;margin-right: 5px; }.operation {float: left;width: 200px;margin-left: 40px; }.clear-all {font-weight: 700;margin: 0 20px; }.toolbar-right {float: right; }.amount-sum {float: left; }.amount-sum em {font-weight: 700;color: #e2231a;padding: 0 3px; }.price-sum {float: left;margin: 0 15px; }.price-sum em {font-size: 16px;color: #e2231a;font-weight: 700; }.btn-area {font-weight: 700;width: 94px;height: 52px;line-height: 52px;color: #fff;text-align: center;font-size: 18px;font-family: "microsoft yahei";background: #e54346;overflow: hidden; }3common.css部分
/*公共样式*/.fl {float: left; }.fr {float: right; }@font-face {font-family: 'icomoon';src: ;src: format('embedded-opentype'), format('truetype'), format('woff'), format('svg');font-weight: normal;font-style: normal; }.fr .icomoon {font-family: 'icomoon';font-size: 16px;line-height: 26px; }/*版心*/.w {width: 1200px;margin: 0 auto; }.style-red {color: #c81623; }.spacer {width: 1px;height: 12px;background-color: #666;margin: 9px 12px 0; }/*顶部快捷导航*/.shortcut {height: 31px;background-color: #f1f1f1;line-height: 31px; }.shortcut li {float: left; }/*header区域*/.header {position: relative;height: 105px; }.logo {position: absolute;top: 25px;left: 0;width: 175px;height: 56px; }.logo a {display: block;/*overflow: hidden;*/width: 175px;height: 56px;background: no-repeat;/*text-indent: -999px;*/font-size: 0; }.search {position: absolute;top: 25px;left: 348px; }.text {float: left;width: 445px;height: 32px;border: 2px solid #b1191a;padding-left: 10px;color: #ccc; }.btn {float: left;width: 82px;height: 36px;background-color: #b1191a;border: 0;font-size: 16px;color: #fff; }.hotwrods {position: absolute;top: 65px;left: 348px; }.hotwrods a {margin: 0 10px; }.shopcar {position: absolute;top: 25px;right: 64px;width: 138px;height: 34px;border: 1px solid #dfdfdf;background-color: #f7f7f7;line-height: 34px;text-align: center; }.car {font-family: 'icomoon';color: #da5555; }.arrow {font-family: 'icomoon';margin-left: 5px; }.count {position: absolute;top: -5px;/*应该是左侧对齐 文字才能往右走显示*/left: 100px;background-color: #e60012;height: 14px;padding: 0 3px;line-height: 14px;color: #fff;/*border-radius: 左上角 右上角 右下角 左下角;*/border-radius: 7px 7px 7px 0; }/*nav start*/.nav {height: 45px;border-bottom: 2px solid #b1191a; }.dropdown {width: 209px;height: 45px; }.dropdown .dt {height: 100%;background-color: #b1191a;font-size: 16px;color: #fff;text-align: center;line-height: 45px; }.dropdown .dd {height: 465px;background-color: #c81623;margin-top: 2px; }.menu_item:hover {background-color: #fff; }/*鼠标经过li 里面的 a变颜色*/.menu_item:hover a {color: #c81623; }.menu_item {height: 31px;line-height: 31px;margin-left: 1px;padding: 0 10px;transition: all .5s; }.menu_item:hover {padding-left: 20px; }.menu_item a {font-size: 14px;color: #fff; }.menu_item i {float: right;font-family: 'icomoon';font-size: 18px;color: #fff; }.navitems {margin-left: 10px; }.navitems li {float: left; }.navitems li a {display: block;height: 45px;padding: 0 25px;line-height: 45px;font-size: 16px; }/*footer 部分*/.footer {height: 386px;background-color: #f5f5f5;padding-top: 30px; }.mod_service {height: 79px;border-bottom: 1px solid #ccc; }.mod_service li {float: left;width: 240px;height: 79px; }.mod-service-icon {/*浮动的盒子 可以直接给大小的 不需要转换*/float: left;width: 50px;height: 50px;margin-left: 35px;background: no-repeat; }.mod_service_zheng {background-position: -253px -3px; }.mod_service_tit {float: left;margin-left: 5px; }.mod_service_tit h5 {margin: 5px 0; }.mod_service_kuai {background-position: -255px -54px; }.mod_service_bao {background-position: -257px -105px; }.mod_help {height: 187px;border-bottom: 1px solid #ccc; }.mod_help_item {float: left;width: 150px;padding: 20px 0 0 50px; }.mod_help_item dt {height: 25px;font-size: 16px; }.mod_help_item dd {height: 22px; }.mod_help_app dt, .mod_help_app p {padding-left: 15px; }.mod_help_app img {margin: 7px 0; }.mod_ag凯发k8国际 copyright {text-align: center; }.mod_ag凯发k8国际 copyright_links {margin: 20px 0 15px 0; }.mod_ag凯发k8国际 copyright_info {line-height: 18px; }总结
以上是ag凯发k8国际为你收集整理的前端经典案例——购物车,jquery实现的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 记录element-ui级联选择器,二级
- 下一篇: 记录js报错cannot set pro