商品详情页代码html,商品详情页food.vue

本文介绍了如何使用Vue和Better-Scroll创建一个全屏显示的商品详情页,包括页面的进入退出动画、商品信息展示、商品评价功能。通过绑定DOM元素并应用Vue的过渡效果实现平滑动画,利用Better-Scroll处理页面滚动,并展示了如何处理组件间的交互和数据传递。
摘要由CSDN通过智能技术生成

主体结构

html代码

用ref绑定food的DOM元素,为了被bscroll做滚动处理

用transition包裹了整个food,为了实现这个页面的进入和退出动画

js代码

import BScroll from 'better-scroll';

export default {

props: {

food: {

type: Object

}

},

data(){

return {

showFlag: false

}

},

methods: {

show(){

this.showFlag = true;

this.$nextTick(() => { //异步添加滚动绑定

if (!this.scroll) {

this.scroll = new BScroll(this.$refs.food, {

click: true

});

} else {

this.scroll.refresh();

}

})

},

hide(){

this.showFlag = false;

}

}

通过跟hide方法切换showFlag的值来实现显示隐藏

因为整个页面是比较长的,需要做滚动,所以异步加载bscroll

css代码

.food

position: fixed //霸占屏幕,全屏显示,所以用fixed布局

left: 0

top: 0

bottom: 48px //保留底部购物车底部栏的位置

z-index: 30 //z-index的数值是有考究的,要控制好各个页面的z-index纵深

width: 100%

background: #fff

transform: translate3d(0, 0, 0)

&.move-enter-active, &.move-leave-active //用vue的动画配置实现动画

transition: all 0.2s linear

&.move-enter, &.move-leave-active

transform: translate3d(100%, 0, 0)

对于整个商品详情页的打开和关闭效果体验,需要对其做动画处理,transition

动画是3d变形,从右往左(改变的是x坐标),直线移动(linear)

商品封面

html代码

js代码

export default {

props: {

food: { //用goods.vue组件传入的food数据

type: Object

}

}

}

在goods.vue组件上传入的food数据

css代码

.image-header

position: relative

width: 100%

height: 0

padding-top: 100% //这是一个css-hack技巧

img

position: absolute

top: 0

left: 0

width: 100% //图片撑满整个img的div

height: 100%

.back

position: absolute

top: 10px

left: 0

.icon-arrow_lift //返回按钮,使用的是icon的那个css

display: block

padding:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值