resize 线条

本文介绍了如何使用 Vue.js 实现了一个可拖动的 XDragHandle 组件,当鼠标移动时,通过监听 mouseMove 事件计算并触发 'menuWidthChange' 方法,实时调整菜单宽度,确保在限定范围内。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<template>

  <div class="x-handle" unselectable="on" onselectstart="return false" @mousedown="mouseDown"></div>

</template>

<script>

export default {

  name: 'XDragHandle',

  data() {

    return {

      lastX: '',

    }

  },

  created() {

    document.addEventListener('mouseup', this.mouseUp)

  },

  destroyed() {

    document.removeEventListener('mouseup', this.mouseUp)

  },

  methods: {

    mouseUp() {

      this.lastX = ''

      document.removeEventListener('mousemove', this.mouseMove)

    },

    mouseDown(event) {

      document.addEventListener('mousemove', this.mouseMove)

      this.lastX = event.screenX

    },

    mouseMove(event) {

      console.log('move')

      this.$emit('widthChange', this.lastX - event.screenX)

      this.lastX = event.screenX

    },

  },

}

</script>

<style lang="scss" scoped>

.x-handle {

  width: 2px;

  cursor: w-resize;

  z-index: 10;

  background-color: #f1f4f9;

}

</style>

----------------------------------------------------------------------------------------

 menuWidthChange(movement) {

      this.menuWidth -= movement

      if (this.menuWidth < 150) {

        this.menuWidth = 150

      }

      if (this.menuWidth > 600) {

        this.menuWidth = 600

      }

    },

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值