首页 > 其他分享 >div'可拖拽宽度

div'可拖拽宽度

时间:2022-11-02 11:33:57浏览次数:46  
标签:lastX 自定义 HandleEvent 拖拽 width 宽度 div document event

<template>
 <div class="x-handle" @mousedown="mouseDown"></div>
</template>

<script>
export default {
 name: 'HandleEvent',
 data() {
  return {
   lastX: '',
  }
 },
 methods: {
  // 在 类move_div 上按下鼠标左键时,监听鼠标移动
  mouseDown(event) {
   document.addEventListener('mousemove', this.mouseMove)
  },
  // 移动到的位置
  mouseMove(event) {
   let width = event.clientX
   // 这里的减去的值是左侧伸缩栏的宽度,根据伸缩状态减去200 或 64
   if (JSON.parse(localStorage.getItem('isCollapse'))) {
    this.lastX = width - 64
   } else {
    this.lastX = width - 200
   }
   this.$emit('widthChange', this.lastX)
  },
  mouseUp() {
   // 左键抬起时,移除监听事件
   document.removeEventListener('mousemove', this.mouseMove)
  },
 },
 created() {
  document.addEventListener('mouseup', this.mouseUp)
 },
 destroyed() {
  document.removeEventListener('mouseup', this.mouseUp)
 },
}
</script>
<style lang="scss">
.x-handle {
 width: 2px;
 z-index: 10;
 background: #ccc;
 cursor: ew-resize;
}
</style>

在组件中调用:

1、import HandleEvent from '../../component-tool/HandleEvent.vue'

2、 components: {
  'handle-event': HandleEvent,
 },

3、<handle-event class="xhandle" @widthChange="widthChange" />

4、  methods中:
  widthChange(width) {
   this.tree_width = width // 自定义元素
   let table_box = document.getElementById('table_box') // 自定义
   table_box.style.left = this.tree_width + 3 + 'px'  // 自定义
  },

 

标签:lastX,自定义,HandleEvent,拖拽,width,宽度,div,document,event
From: https://www.cnblogs.com/lyt520/p/16850456.html

相关文章

  • Codeforces Round #611 (Div. 3) D
    D.ChristmasTrees显然对于一个中间的点要是不能向两边最近的扩展我们直接判定他没有用处了这样我们就有了bfs的做法我们先把原点放进去要是能扩展我们显然可以直接......
  • Codeforces Round #667 (Div. 3) ABCD
    https://codeforces.com/contest/1409A.YetAnotherTwoIntegersProblem题目大意:k∈[1;10]我们每次可以选择a:=a+kora:=a−k问a要经历多少次操作变成b?input......
  • Educational Codeforces Round 81 (Rated for Div. 2) D
    D.SameGCDs对于题目所给的公式gcd(a,m)=gcd(a+x,m)由辗转相除我们把第二个式子变一下gcd((a+x)%m,m)x的取值范围为[0,m)(a+x)%m也是所以我们可以直接写成gcd(a,m)=g......
  • Codeforces Round #113 (Div. 2) E. Tetrahedron(dp/递推)
    https://codeforces.com/problemset/problem/166/E题目大意:给定一个正三角锥,最上面的顶点是D点,下面三个点分别标号为ABC给定n次,我们初始化在D点上,并且要求最后第n步也......
  • Codeforces Round #650 (Div. 3) D
    D.TaskOnTheBoard观察样例我们发现一定会有0的存在然后呢?我们发现给出的题意中只是小的字符一定会加上与比它大的字符的距离数据范围是50我们知道了最大的字符......
  • Codeforces Round #667 (Div. 3) E
    E.TwoPlatforms读完题发现好像跟y坐标没关系考虑dpdp[i][0/1/2]表示以第i个点结尾的用了0/1/2个板子的max显然我们对于0我们都是初始化为0对于dp[i][1]我们直接dp[......
  • Divide Points
    传送门Sol1神奇的构造。。思路自然直接:枚举\(Dist\),对所有\(dist(i,j)=Dist\)的点对连接\(i,j\),然后剔除所有度数为\(0\)的点,这样就建立了一张图。然后跑dfs判......
  • Codeforces Round #617 (Div. 3) E1
    E1.StringColoring(easyversion)观察样例我们发现要是最长下降子序列要是>=3那我们显然不可能有解然后我们考虑构造要是最长最长下降子序列只是2的话那显然我们只......
  • HTML如何让IMG自动适应DIV容器大小
    HTML如何让IMG自动适应DIV容器大小为了让IMG自适应大小,如下我做了一个横向自适应的示例:IMG样式(横向拉伸,纵向自动匹配大小)DIV样式(元素居中显示)IMG样式(横向拉伸,纵向自动匹配大......
  • html-span与div
    Div自己独占一行一行上可以有多个span实现网络布局<div>我是一个div标签我一个人占一整行</div>  <span>新浪</span>  <span>百度</span>Div相当于一个独占......