JavaScript - 忽略鼠标是否位于文本区域的 "resize handle"上

标签 javascript html textarea onmousedown onmousemove

我有一个简单的可拖动文本区域元素的以下代码:

HTML:

<textarea type="text" onmousedown="mouseDown(this)"></textarea>

JavaScript:

const mouseDown = element => {

    document.onmousemove = e => {
        element.style.left = `${e.pageX}px`;
        element.style.top = `${e.pageY}px`;
    }
}

document.onmouseup = () => document.onmousemove = null;

除了一个问题之外,这非常有效。由于它是一个 textarea,尝试调整该元素的大小会使其变为 0px x 0px 并被拖动。如果鼠标位于调整大小 handle 上,我的 onmousemove 函数如何返回

最佳答案

计算元素调整大小 handle 所在位置的大小和部分。您可以使用 element.getBoundingClientRect() 使用元素偏移高度、宽度和页面位置来获取该区域的相对位置。

一旦找到这些边界,它就会变成我的指针是否在我定义为不可拖动的框内?

关于JavaScript - 忽略鼠标是否位于文本区域的 "resize handle"上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53875642/

相关文章:

javascript - 如何在 jqGrid 的请求中将 postData._search 设置为 true?

javascript - 为单元格设置 colspan/rowspan

html - 如何阻止 Chrome 自动完成文本区域?

html - 文本区域最大宽度

javascript - 文本区域内的 HTML5 富文本

Javascript 和更高级的排序

javascript - 动画不适用于 Google Charts(可视化)中堆叠条形图中的第三个条形图

php - 在 PHP 页面上保存数据的最简单方法

html - Laravel Blade 模板 View HTML::style 未在子文件夹中链接

html - XHTML 是 HTML 的子集吗?