在网页中拖动可移动层DIV,鼠标指针的样式问题?

wlde155 2014-02-10 07:49:21

鼠标的指针在网页中正常情况下是默认为左上角指针样式如图:

现在,网页中有一个可移动DIV,在可移动DIV上,按下鼠标左键并拖动,拖动过程中鼠标就由原来的左上角指针样式(cursor:default)变成了文本输入样式(cursor:text)如图:


我想要的效果是:在可移动DIV上,按下鼠标左键并拖动,拖动过程中鼠标仍然是左上角指针样式(cursor:default),而不是文本输入样式(cursor:text)


请问,这需要用到JS吗?具体应该如何达到这种效果叻?

...全文
244 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
在IE 火狐下,应该是没有问题的 Chrome 浏览器 下会存在你所描述的问题 阻止下默认事件
document.onselectstart = function(){return false;};
示例代码如下

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<style>
.move{width:200px;height:200px;background:red;position:absolute;}
</style>
<script>
window.onload=function()
{
	var oDiv=document.getElementsByTagName('div')[0];
	document.onselectstart = function(){return false;};
	oDiv.onmousedown=function(ev)
	{
		var ev=ev||window.event;
		var iLeft=this.offsetLeft;
		var iTop=this.offsetTop;
		var mouseX=ev.clientX;
		var mouseY=ev.clientY;
		document.onmousemove=function(ev)
		{
			var ev=ev||window.event;
			oDiv.style.left=iLeft+ev.clientX-mouseX+'px';
			oDiv.style.top=iTop+ev.clientY-mouseY+'px';
			
		}
		document.onmouseup=function()
		{
			document.onmousemove=null;
			document.onmouseup=null;
		}
		
	}
}
</script>
</head>

<body>
<div class="move"></div>
</body>
</html>

87,996

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧