大家好,所以我正在尝试在画布中制作一个可拖动的文本框。但是当我似乎无法弄清楚功能时。我想要做的就是在图像顶部拖动文本框。能够点击并拖动文本真的很酷。有人知道怎么做这个吗?它成为一个头痛。如果您有任何建议,那就太好了。
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<div id="app">
<canvas id="canvas" width='500' height='500' ref='canvas' @mousedown='handleMouseDown' @mouseout='resetSelectedText' @mouseup='resetSelectedText' @mousemove='handleMouseMove'></canvas>
<input v-model="text" placeholder='type your text'>
<button @click='addText'>
add text
</button>
<div v-for="(text, index) in texts">
{{text.text}} <div @click='removeText(index)'>X</div>
</div>
<img src ='https://shop-resources.prod.cms.tractorsupply.com/resource/image/18248/portrait_ratio3x4/595/793/4c37b7f6d6f9d8a5b223334f1390191b/JJ/ten-reasons-not-to-buy-an-easter-bunny-main.jpg' @click="changeBackground('http://upload.wikimedia.org/wikipedia/commons/7/79/Big_Buck_Bunny_small.ogv')">
<img src ='https://ce.prismview.com/api/files/templates/43s327k3oqfsf7/poster/poster.jpg' @click="changeBackground('http://ce.prismview.com/api/files/templates/43s327k3oqfsf7/main/360/43s327k3oqfsf7_360.mp4')">
<video id="video" ref='video' :src="source" controls="false" autoplay loop></video>
</div>
<script>
new Vue({
el: '#app',
data: {
source: "http://upload.wikimedia.org/wikipedia/commons/7/79/Big_Buck_Bunny_small.ogv",
canvas: null,
ctx: null,
video: null,
text:'',
timer: null,
texts: [],
selectedText: null,
startX: null,
startY: null
},
methods: {
addText(){
if(this.text.length){ …Run Code Online (Sandbox Code Playgroud)