鼠标移动div时禁止选中div中的文字的方法

这是通过CSS样式来实现的禁止用鼠标选择功能:unselectable为IE准备,onselectstart为Chrome、Safari准备,-moz-user-select是FF的 cssstyle: 

html,body{-moz-user-select: none; -khtml-user-select: none; user-select: none;} 
<div unselectable="on" onselectstart="return false;" style="-moz-user-select:none;"> 


屏蔽选择的样式定义:-moz-user-select属性(只支持ff)。 

属性有三个属性值: 

1、 none:用none,子元素所有的文字都不能选择,包括input输入框中的文字也不能选择。 
2、 -moz-all:子元素所有的文字都可以被选择,但是input输入框中的文字不可以被选择。 
3、 -moz-none:子元素所有的文字都不能选择,但是input输入框中的文字除外。

转载于:https://my.oschina.net/u/2349331/blog/492355

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果你希望只有同按住鼠标左键并移动鼠标才能拖动 `<div>` 元素,你可以在 `mousemove` 事件添加一个判断条件来检查鼠标左键是否被按下。下面是更新后的代码: ```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; padding: 5px; border-radius: 5px; color: white; } </style> </head> <body> <div id="mathjax-formulas-container"></div> <script> var formulas = []; var selectedFormula = null; var offsetX = 0; var offsetY = 0; document.addEventListener("mousedown", function(event) { if (event.button === 0) { var target = event.target; if (target.classList.contains("mathjax-formula")) { selectedFormula = target; offsetX = event.clientX - selectedFormula.offsetLeft; offsetY = event.clientY - selectedFormula.offsetTop; document.addEventListener("mousemove", moveFormula); } } }); function moveFormula(event) { if (selectedFormula && event.buttons === 1) { selectedFormula.style.left = event.clientX - offsetX + "px"; selectedFormula.style.top = event.clientY - offsetY + "px"; } else { document.removeEventListener("mousemove", moveFormula); } } document.addEventListener("mouseup", function(event) { if (event.button === 0) { selectedFormula = null; document.removeEventListener("mousemove", moveFormula); } }); document.addEventListener("click", function(event) { var mathjaxFormulasContainer = document.getElementById("mathjax-formulas-container"); navigator.clipboard.readText().then(function(text) { if (text) { var latexCode = text.trim(); if (latexCode && !selectedFormula) { var newFormula = document.createElement("div"); newFormula.className = "mathjax-formula"; newFormula.style.left = event.clientX + "px"; newFormula.style.top = event.clientY + "px"; newFormula.innerText = latexCode; mathjaxFormulasContainer.appendChild(newFormula); formulas.push({ latexCode: latexCode, position: { x: event.clientX, y: event.clientY } }); MathJax.Hub.Queue(["Typeset", MathJax.Hub, newFormula]); } } }); }); </script> </body> </html> ``` 现在,只有同按住鼠标左键并移动鼠标选中的 `<div>` 元素才会跟随鼠标移动。在 `mousemove` 事件,我添加了一个条件 `event.buttons === 1` 来检查鼠标左键是否被按下,以及在 `mouseup` 事件添加了条件 `event.button === 0` 来检查是否释放鼠标左键。这样,只有在按住鼠标左键并移动鼠标选中的元素才会移动,而不是在单击移动。 请注意,这里我假设你只关注鼠标左键的操作,当按下其他鼠标按键不会触发拖动操作。如果你需要同支持其他鼠标按键,请相应地调整条件判断。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值