当鼠标左键点击<div>区域后可以移动鼠标拖动<div>,放开鼠标左键停止移动
时间: 2023-11-11 17:05:01 浏览: 167
Div与span的区别-H5超链接和图像与其他标签
要实现当鼠标左键点击 `<div>` 区域后可以通过拖动鼠标来移动该 `<div>`,并在放开鼠标左键时停止移动,你可以使用以下代码作为参考:
```html
<!DOCTYPE html>
<html>
<head>
<title>MathJax Example</title>
<script src="https://polyfill.io/v3/polyfill.min.js?features=es6"></script>
<script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML"></script>
<style>
#mathjax-formula {
font-size: 2.8em;
background-color: green;
position: absolute;
left: 0;
top: 0;
cursor: move;
}
</style>
</head>
<body>
<div id="mathjax-formula">
<!-- 这里是你的MathJax公式 -->
\(x = \frac{-b \pm \sqrt{b^2 - 4ac}}{2a}\)
</div>
<script>
var mathjaxFormula = document.getElementById("mathjax-formula");
var isDragging = false;
var offset = { x: 0, y: 0 };
mathjaxFormula.addEventListener("mousedown", function(event) {
if (event.button === 0) { // 检查是否是鼠标左键点击事件
isDragging = true;
offset.x = event.clientX - mathjaxFormula.offsetLeft;
offset.y = event.clientY - mathjaxFormula.offsetTop;
}
});
document.addEventListener("mousemove", function(event) {
if (isDragging) {
mathjaxFormula.style.left = (event.clientX - offset.x) + "px";
mathjaxFormula.style.top = (event.clientY - offset.y) + "px";
}
});
document.addEventListener("mouseup", function(event) {
if (event.button === 0) { // 检查是否是鼠标左键放开事件
isDragging = false;
}
});
MathJax.Hub.Config({
tex2jax: {
inlineMath: [ ['\\(','\\)'] ],
processEscapes: true
}
});
MathJax.Hub.Queue(["Typeset", MathJax.Hub]);
</script>
</body>
</html>
```
在这个示例中,我们添加了事件监听器来捕获鼠标事件。当鼠标按下左键时,我们设置 `isDragging` 变量为 `true`,并记录鼠标点击位置与 `<div>` 左上角的偏移量。
在鼠标移动事件中,如果 `isDragging` 为 `true`,则根据鼠标移动的位置和偏移量来更新 `<div>` 的位置。
在鼠标放开事件中,如果鼠标左键放开,则将 `isDragging` 设置为 `false`,停止移动。
请注意,我们使用 `event.button` 属性来检查鼠标按钮的状态,`0` 表示鼠标左键。
将以上代码保存为一个 HTML 文件,并在浏览器中打开该文件。当你在页面上点击 `<div>` 区域,并按住鼠标左键拖动时,该 `<div>` 将跟随鼠标移动。当你放开鼠标左键时,移动停止。
阅读全文