网友回复
先看效果

具体教程
1、在component文件夹下新增一个组件叫cartfly.vue
<template>
<view class="relative">
<view class="ball" v-for="(d,i) in balls" :key="i" :style=" d.inited ? 'transition: transform .5s ease-in; transform: translate3d(0, ' + offsetY + 'px,0); top: ' + ballY + 'px;' : '' ">
<view class="inner arbg" :style="d.inited ? 'transition: transform .5s linear; transform: translate3d( ' + offsetX + 'px,0,0); left: ' + ballX + 'px; opacity: 1;' : '' "></view>
</view>
</view>
</template>
<script>
export default {
props:{
cartBasketRect:Object,// 购物车篮的rect信息
},
data() {
return {
offsetX: 0,
offsetY: 0,
ballX: 0,
ballY: 0,
balls: {},
//避免抖动
lastEvent:'',
lastId:''
}
},
created() {
let balls = [];
for (let i = 0; i < 5; i++) {
balls.push({ inited: false });
}
this.balls = balls
},
methods:{
getBalls() {
return balls;
},
addToCart (e,id) {
if(!id){
this.lastId = ''
return
}
const self = this
if(this.lastId == id){
e = this.lastEvent
}else{
this.lastId = id
this.lastEvent = e
}
let ballX = e.touches[0].clientX - 10
let ballY = e.touches[0].clientY - 9;
this.offsetX = -Math.abs(this.cartBasketRect.left - ballX + 10)
this.offsetY = Math.abs(this.cartBasketRect.top - ballY +(this.cartBasketRect.height/1.5))
this.ballX = ballX
this.ballY = ballY
for (let i = 0; i < 5; i++) {
if (!this.balls[i].inited) {
this.balls[i].inited = true
setTimeout(() => {
self.balls[i].inited= false
}, 500);
break;
}
}
}
}
}
</script...点击查看剩余70%
chrome网页突然报错:错误代码:RESULT_CODE_KILLED_BAD_MESSAGE
openai的codex如何全程无需手动确认自动修改文件?
阿里云oss前端上传文件直传如何限制文件类型?
阿里云oss前端获取policy签名直传oss上传文件回调如何传?
如何将根据三维物体通过提示词变成可交互的4d场景动画?
浏览器中实时摄像头离线视觉ai模型有吗?
如何让ai基于Chromium内核开发自己的windows浏览器?
如何将自己从小生活的农村村庄做成3d可漫游的高斯泼溅?
同一个iframe多次write包含three的html为啥报错不显示Failed to execute 'write' on 'Document': Identifier 'scene' has a
软件工程师的工作内容将由敲代码转变成使用ai来解决现实世界的问题?


