- 需要使用better-scroll进行列表内容滚动绑定
- 使用vue2的transition动画过渡处理动画
- 使用子组件cartcontrol处理购物车的添加删除操作cartcontrol.vue购物车操作按钮
1 | <!--transition是vue2的动画格式--> |
购物车详情内容shopcart-list
一共有两块,list-header,list-content,这是根据设计稿内容确定的
list-header
绑定清空按钮
1 | <div class="list-header"> |
通过设置selectFoods里面所有数据的count为0来实现清空的目的
1 | empty() { //清空购物车内容 |
list-content
这里也分开两部分来说:
第一部分:
- 使用ref来绑定一个dom,然后被vue使用,ref=”listContent”,这是为了将list-content的dom被使用,然后实例化better-scroll实现滚动list的效果
- 购物车的清单是通过遍历selectFoods数组(通过父组件goods处理并传入goods.vue)得到的,v-for=”food in selectFoods”
- shopcart-list本身也有一个渐入渐出的动画
- list-content本身没有高度,是靠header和content撑开
第二部分:
- 复用子组件cartcontrol,因为这个子组件在购物车内容和购物车详情页的列表里都有使用,所以单独独立出来,复用代码
- 子组件cartcontrol会有2个动画,一个动画是他自己本身的水平滚动,一个是动画是要跟shopcart关联的抛物线滚动cartcontrol.vue购物车操作按钮
- 代码部分:
html代码
1 | <!--ref是用来给better-scroll绑定的dom--> |
js代码
1 | import BScroll from 'better-scroll'; //导入better-scroll |
css代码
1 | @import "../../common/stylus/mixin.styl" |
购物车遮罩list-mask
1 | <!--购物车详情页的遮罩并且动画处理--> |
- 遮罩的动画是普通的渐隐渐现,使用css3实现
- 只需要操作数据属性就能够实现
- 遮罩的层级是跟shopcart-list同级的,是因为同一层
- 遮罩触发会放到shopcart组件的content元素,使用的方法是toggleList
1 | .list-mask //遮罩的样式 |