鼠标移动时禁止选中文字

在做一个div移动的时候,mousemove的时候总是会选中其他地方的文字。在mousemove的handler函数里加上e.preventDefault(),只在chrome浏览器中选中文字被阻止。

看了一些代码之后,尝试在mousedown的handler函数里加上return false;就解决问题了。

猜测选中文字的执行是根据mousedown的时候返回值和mousemove的返回值进行计算,从而知道哪些文字被选中。鼠标按下时将返回值设为false,就阻止了它计算的过程了。

具体情况是如何,后续再查查资料看看。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的示例代码,展示了如何在Vue3上下组件之间增加可拖动的分割条: ```vue <template> <div class="container"> <div class="top" :style="{ height: topHeight + 'px' }"> <slot name="top"></slot> </div> <div class="splitter" ref="splitter" @mousedown="startDrag"></div> <div class="bottom"> <slot name="bottom"></slot> </div> </div> </template> <script> export default { data() { return { topHeight: 200, // 初始上部分的高度 isDragging: false, // 是否正在拖拽 }; }, methods: { startDrag(event) { this.isDragging = true; const startY = event.pageY; const splitter = this.$refs.splitter; const container = splitter.parentNode; container.style.userSelect = 'none'; // 禁止选中文字 container.style.cursor = 'ns-resize'; // 修改鼠标样式 const onMouseMove = (event) => { const deltaY = event.pageY - startY; this.topHeight += deltaY; }; const onMouseUp = () => { this.isDragging = false; container.style.userSelect = 'auto'; // 恢复选中文字 container.style.cursor = 'auto'; // 恢复鼠标样式 window.removeEventListener('mousemove', onMouseMove); window.removeEventListener('mouseup', onMouseUp); }; window.addEventListener('mousemove', onMouseMove); window.addEventListener('mouseup', onMouseUp); }, }, }; </script> <style> .container { display: flex; flex-direction: column; height: 100%; } .top, .bottom { overflow: auto; /* 让内容超出部分可滚动 */ } .splitter { height: 5px; background-color: #aaa; cursor: ns-resize; } </style> ``` 在上述代码中,我们使用了一个`<div>`元素作为分割条,设置了它的高度和背景样式。当鼠标按下该元素,我们在`window`对象上监听鼠标移动鼠标抬起事件,计算出鼠标移动的距离并修改上部分的高度,从而实现了动态调整上下组件之间的分割线位置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值