Vue(小案例_vue+axios仿手机app)_购物车
一、前言
1.购物车
二、主要内容
1、效果演示如下,当我们选择商品数量改变的时候,也要让购物车里面的数据改变
2、具体实现
(1)小球从上面跳到下面的效果
(2)当点击上面的“加入购物车按钮”让小球显示出来(这里需要用到vue中的动画过渡)
结构如下(这是在加入购物车这个页面)
//小球 <transition name='ball' @after-enter='afterEnter'>
<div class="ball" v-if="isExist"></div>
</transition>
样式()
.ball-enter-active {
/*给1s的时间让小球进入动画效果*/
animation: bounce-in 1s;
} .bass-leave{
/*元素进入以后,透明度0,整个动画都是0*/
/*元素离开默认是1,所以会闪一下,设置为0*/
opacity:; }
/*这里是控制小球从上面跳到下面的动画*/
@keyframes bounce-in {
0% {
transform: translate3d(0, 0, 0);
}
50% {
transform: translate3d(140px, -50px, 0);
}
75% {
transform: translate3d(160px, 0px, 0);
}
100% {
transform: translate3d(140px, 300px, 0);
}
}
(3)点击加入购物车,先让小球显示---->然后进入after-enter这个钩子函数之后隐藏-,
(3.1)给加入购物车按钮,注册点击事件
<mt-button type="danger" size='small' @click='ballHandler'>加入购物车</mt-button>
(3.2)给小球绑定一个@after-enter事件
<transition name='ball' @after-enter='afterEnter'>
<div class="ball" v-if="isExist"></div>
</transition>
(3.3)定义上面的事件
data(){
return{
url:`getthumImages/${this.$route.params.id}`,
goodsInfo:{},
pickNum:1 ,
isExist:false //让小球默认是隐藏的状态,
}
}, methods:{
afterEnter(){
this.isExist=false; //显示出来之后执行这个,又将小球隐藏
},
//点击加入购物车执行这个方法,然后让小球显示出来
ballHandler(){
this.isExist=true;
},
(4)点击加入购物车之后,需要让下面的底部导航也有一个小球,来模拟小球从上到下,然后停在下面的效果
(4.1)在下面的底部导航(App.vue底部导航是公共组件)添加小球
<router-link :to="tab.routerName">
<img :src="tab.imgSrc">
<!--小球-->
<mt-badge size='small' color="#FC0107" v-if='index===2'>{{pickNum}}</mt-badge>
<p>{{tab.title}}</p>
</router-link>
(4.2)调整样式
.tabBar ul li a.link-active{
background-color: pink;
position: relative;
} /*重写一下小球的样式*/
.mint-bage.is-size-small{
position: absolute;
top:;
right: 10px;
}
(5)接下来点击上面的加入购物车,同时改变下面显示的数值(上面(Goods.vue),下面(App.vue)这是两个兄弟组件,兄弟组件之间的传值用到bus中央处理器)
(5.1)新建一个EventBus.js定义bus
import Vue from 'vue'
const EventBus = new Vue();//创建一个公共的bus
export default EventBus;
(5.2)在main.js中挂载这个公交车
//挂载bus
import EventBus from './EventBus.js'
Vue.prototype.$bus = EventBus;
(5.3)在App.vue(需要接收的这个组件) 一开始就让他监听,
created(){
//当你的组件一创建好了后就挂载这个bus公交车,$on这个事件监听
this.$bus.$on(`sendPickNum`, (data)=>{ //data是从另一个组件触发传来的值
this.pickNum=this.pickNum + data;
})
}
(5.4)在Goods.vue(传数据的组件),当点击的时候让他触发那个原生的click事件
afterEnter(){
this.isExist=false; //显示出来之后执行这个,又将小球隐藏 this.$bus.$emit('sendPickNum',this.pickNum);
}, //点击加入购物车执行这个方法,然后让小球显示出来
ballHandler(){ this.isExist=true;
// this.$bus.$emit('sendPickNum',this.pickNum); //将当前的pickNum传过去,但是这个不能加在这里,否者一点击“加入购物车就传
},
(5.5)画图具体实现
三、总结
Vue(小案例_vue+axios仿手机app)_购物车的更多相关文章
- Vue(小案例_vue+axios仿手机app)_购物车(二模拟淘宝购物车页面,点击加减做出相应变化)
一.前言 在上篇购物车中,如果用户刷新了当前的页面,底部导航中的数据又会恢复为原来的: 1.解决刷新,购物车上数值不变 ...
- Vue(小案例_vue+axios仿手机app)_购物车(计算商品总金额)
一.前言 1.计算总金额 2.点击删除按钮,删除对应的商品信息 3.当还没结算的时候,当用户跳到其他页面 ...
- Vue(小案例_vue+axios仿手机app)_公共组件(路由组件传参)
一.前言 1.公共轮播图的实现 2.组件传参,公共组件的实现 二.主要内容 1.公共轮播图的实现 (1)分析:当渲染不同的轮 ...
- Vue(小案例_vue+axios仿手机app)_上拉加载
---恢复内容开始--- 一.前言 ...
- Vue(小案例_vue+axios仿手机app)_实现用户评论
一.前言 1.渲染评论列表 2.点击加载按钮,加载更多 3.提交评论 二.主要内容 1.评论列表一般是注册到一个全局的公共组件中 2.请求后台数据,渲染评论列表 (1)数据格式如下 地址 /ap ...
- Vue(小案例_vue+axios仿手机app)_图片列表操作
一.前言 1.让图片还没有被完全加载出来的时候给用户提示 2.图片查看器 二.主要内容 1.让图片还没有被完全加载出来的时候 ...
- Vue(小案例_vue+axios仿手机app)_首页(底部导航栏+轮播图+九宫格)
---恢复内容开始--- 一.前言 1.底部导航(两种做法) 2.轮播图 ...
- Vue(小案例_vue+axios仿手机app)_图文列表实现
一.前言 1.导航滑动实现 2.渲染列表信息时让一开始加载的时候就请求数据 3.根据路由的改变,加载图文的改变(实现用户访问网站时可能执行的三个操作) 二.主要内容 1.导航滑动实现: (1)演示 ...
- Vue(小案例_vue+axios仿手机app)_Vuex优化购物车功能
一.前言 1.用vuex实现加入购物车操作 2.购物车详情页面 3.点击删除按钮,删除购物详情页面里的对应商品 二.主要内容 1.用vuex加入购物车 (1)在src ...
随机推荐
- C#中Activator.CreateInstance()方法用法分析
本文实例讲述了C#中Activator.CreateInstance()方法用法. Activator 类 包含特定的方法,用以在本地或从远程创建对象类型,或获取对现有远程对象的引用. C#在类工厂中 ...
- AjaxPro2完整入门教程
一.目录 简单类型数据传送(介绍缓存,访问Session等) 表类型数据传送 数组类型数据传送(包含自定义类型数据) 二.环境搭建 1.这里本人用的是VS2012. 2.新建一个空的Web项目(.NE ...
- Asp.net mvc 项目返回Json
因mvc控制器返回类型JsonResult 在处理对象转JSON的时候,对日期的格式化处理并不太符合要求,所以重新继承抽象类ActionResult使用Newtonsoft.Json来系列化 usin ...
- AngularJS学习之旅—AngularJS 控制器(六)
1.AngularJS 控制器 AngularJS 应用程序被控制器控制. ng-controller 指令定义了应用程序控制器. 控制器是 JavaScript 对象,由标准的 JavaScript ...
- 英语口语练习系列-C09-常用动词
<先秦 · 关雎> 关关雎鸠,在河之洲.窈窕淑女,君子好逑. 参差荇菜,左右流之.窈窕淑女,寤寐求之. 求之不得,寤寐思服.悠哉悠哉,辗转反侧. 参差荇菜,左右采之.窈窕淑女,琴瑟友之. ...
- 浏览器仿EXCEL表格插件 版本更新 - 智表ZCELL产品V1.3发布
智表(zcell)是一款浏览器仿excel表格jquery插件.智表可以为你提供excel般的智能体验,支持双击编辑.设置公式.设置显示小数精度.下拉框.自定义单元格.复制粘贴.不连续选定.合并单元格 ...
- JSP七大动作
- day20-多并发编程基础(一)
重新写一下吧,系统奔溃了,以前写的完全没了,悲催,今日主要写进程 1. 进程的理论知识 2. python中的进程操作 开始今日份整理,加油,你是最胖的!!! 1. 进程的理论知识 1.1 操作系统的 ...
- Auto Layout - BNR
继续UIImageView - BNR篇. 通过Homepwner TARGETS -> General -> Deployment Info -> Devices中的iPhone改 ...
- UNICODE与ASCII
1.ASCII的特点 ASCII 是用来表示英文字符的一种编码规范.每个ASCII字符占用1 个字节,因此,ASCII 编码可以表示的最大字符数是255(00H—FFH).这对于英文而言,是没有问题的 ...