This article example shares the specific code of Vue to realize the floating button that can be moved anywhere for your reference. The specific content is as follows 1.html code <div class="callback float" @click="onClick" @mousedown="down" @touchstart="down" @mousemove="move" @touchmove="move" @mouseup="end" @touchend="end" ref="fu" > <!-- <p @click="callback">Return</p> --> <img @click="callback" src="@/assets/images/callbs.jpg" alt /> </div> 2. Define in data data() { return { isLoading: false, flags: false, //Control use position: { x: 0, y: 0, }, nx: "", ny: "", dx: "", dy: "", xPum: "", yPum: "", }; }, 3.js code methods: { callback() { this.$router.go(-1); }, onRefresh() { // window.location.reload(); setTimeout((res) => { console.log(res); this.isLoading = false; }, 1000); }, down() { this.flags = true; var touch; if (event.touches) { touch = event.touches[0]; } else { touch = event; } this.position.x = touch.clientX; this.position.y = touch.clientY; this.dx = this.$refs.fu.offsetLeft; this.dy = this.$refs.fu.offsetTop; }, move() { if (this.flags) { var touch; if (event.touches) { touch = event.touches[0]; } else { touch = event; } this.nx = touch.clientX - this.position.x; this.ny = touch.clientY - this.position.y; this.xPum = this.dx + this.nx; this.yPum = this.dy + this.ny; let width = window.innerWidth - this.$refs.fu.offsetWidth; //Screen width minus control width let height = window.innerHeight - this.$refs.fu.offsetHeight; //Screen height minus control height this.xPum < 0 && (this.xPum = 0); this.yPum < 0 && (this.yPum = 0); this.xPum > width && (this.xPum = width); this.yPum > height && (this.yPum = height); // if (this.xPum >= 0 && this.yPum >= 0 && this.xPum<= width &&this.yPum<= height) { this.$refs.fu.style.left = this.xPum + "px"; this.$refs.fu.style.top = this.yPum + "px"; // } //Prevent the page from sliding by default document.addEventListener( "touchmove", function () { event.preventDefault(); }, false ); } }, //Function when the mouse is released end() { this.flags = false; }, onClick() { //Here I am using this as a subcomponent this.$emit("click"); }, }, 4.style <style scoped> .callback p { font-size: 16px; color: #fff; background: rgba(56, 57, 58, 0.5); border-radius: 50%; text-align: center; width: 50px; height: 50px; line-height: 50px; font-family: PingFang SC; font-weight: 600; box-shadow: 0 0 10px #fff; } .callback img { display: block; width: 50px; height: 50px; box-shadow: 0 0 10px rgb(133, 129, 129); border-radius: 50%; background: #fff; } .callback { position: fixed; top: 40px; left: 20px; z-index: 99999; } .float { position: fixed; right: 20px; top: 60%; touch-action: none; text-align: center; width: 50px; height: 50px; border-radius: 24px; line-height: 48px; color: white; } </style> The above is the full content of this article. I hope it will be helpful for everyone’s study. I also hope that everyone will support 123WORDPRESS.COM. You may also be interested in:
|
<<: How to disable ads in the terminal welcome message in Ubuntu Server
>>: Error mysql Table 'performance_schema...Solution
CocosCreator version: 2.4.2 Practical project app...
Table of contents 1. Data Manipulation Language (...
Detailed explanation of MySQL stored procedures, ...
01. Infinity Font Download 02. Banda Font Download...
One trick for dealing with this type of error is t...
Table of contents background example Misconceptio...
This article uses examples to explain the princip...
tomcat official website tomcat is equivalent to a...
Referring to the online information, I used cmake...
1. Time formatting and other methods It is recomm...
This article mainly introduces: using Vue to impl...
A colleague once told me to use a temporary table...
0. Background Hardware: Xiaomi Notebook Air 13/In...
This article will introduce how to query data in ...
Create a project directory mkdir php Create the f...