Home > Web Front-end > Vue.js > body text

Vue practical skills: use the v-on instruction to handle mouse drag events

王林
Release: 2023-09-15 08:24:27
Original
1085 people have browsed it

Vue practical skills: use the v-on instruction to handle mouse drag events

Vue practical skills: Use the v-on instruction to handle mouse drag events

Foreword:
Vue.js is a popular JavaScript framework with its simplicity Ease of use and flexibility make it the first choice for many developers. In Vue application development, handling user interaction events is an essential skill. This article will introduce how to use Vue's v-on directive to handle mouse drag events and provide specific code examples.

  1. Create a Vue instance:
    First, introduce the Vue.js library file in the HTML file:

    <script src="https://cdn.jsdelivr.net/npm/vue"></script>
    Copy after login

    Then, create a Vue instance:

    <div id="app">
      ...
    </div>
    
    <script>
    var app = new Vue({
      el: '#app',
      data: {
     ...
      },
      methods: {
     ...
      }
    });
    </script>
    Copy after login
  2. Add original data:
    In order to implement the mouse drag function, we need to define some data used to control the position of the dragged element. Add the following code in the data option of the Vue instance:

    data: {
      dragging: false, // 标记是否正在拖拽
      x: 0, // 鼠标在页面上的横坐标
      y: 0, // 鼠标在页面上的纵坐标
      left: 0, // 拖拽元素的左侧偏移量
      top: 0 // 拖拽元素的顶部偏移量
    }
    Copy after login
  3. Binding mouse events:
    Through the v-on directive, we can easily bind mouse events to DOM elements. Add the following code to the methods option of the Vue instance:

    methods: {
      handleMouseDown: function(event) {
     this.dragging = true;
     this.x = event.pageX;
     this.y = event.pageY;
      },
      handleMouseMove: function(event) {
     if (this.dragging) {
       var dx = event.pageX - this.x;
       var dy = event.pageY - this.y;
       this.left += dx;
       this.top += dy;
       this.x = event.pageX;
       this.y = event.pageY;
     }
      },
      handleMouseUp: function() {
     this.dragging = false;
      }
    }
    Copy after login

    Code analysis:

  4. handleMouseDown: When the mouse is pressed, set dragging to true and record the movement of the mouse on the page Location.
  5. handleMouseMove: When the mouse moves, calculate the offset of the element based on the change in mouse position, and update the values ​​of left and top.
  6. handleMouseUp: When the mouse is released, set dragging to false.
  7. Add a drag-and-drop element:
    In the HTML file, add a drag-and-drop element at the appropriate location:

    <div v-on:mousedown="handleMouseDown"
      v-on:mousemove="handleMouseMove"
      v-on:mouseup="handleMouseUp"
      v-bind:style="{left: left + 'px', top: top + 'px'}"
    ></div>
    Copy after login

    Code analysis:

  8. v-on:mousedown: Bind mouse press event.
  9. v-on:mousemove: Bind mouse movement event.
  10. v-on:mouseup: Bind the mouse release event.
  11. v-bind:style: Dynamically set the position of the element based on the values ​​of left and top.

The complete code example is as follows:

<div id="app">
  <div v-on:mousedown="handleMouseDown"
       v-on:mousemove="handleMouseMove"
       v-on:mouseup="handleMouseUp"
       v-bind:style="{left: left + 'px', top: top + 'px'}"
  ></div>
</div>

<script>
var app = new Vue({
  el: '#app',
  data: {
    dragging: false,
    x: 0,
    y: 0,
    left: 0,
    top: 0
  },
  methods: {
    handleMouseDown: function(event) {
      this.dragging = true;
      this.x = event.pageX;
      this.y = event.pageY;
    },
    handleMouseMove: function(event) {
      if (this.dragging) {
        var dx = event.pageX - this.x;
        var dy = event.pageY - this.y;
        this.left += dx;
        this.top += dy;
        this.x = event.pageX;
        this.y = event.pageY;
      }
    },
    handleMouseUp: function() {
      this.dragging = false;
    }
  }
});
</script>
Copy after login

Summary:
By using Vue's v-on directive, we can easily handle mouse drag events. This article introduces in detail how to implement a simple drag and drop function through specific code examples. I hope readers can master this practical skill and use it in their own Vue applications.

The above is the detailed content of Vue practical skills: use the v-on instruction to handle mouse drag events. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!