当前位置: 首页 > 编程笔记 >

支持IE,firefxo,chrome浏览器下鼠标拖动和拖拽的鼠标指针特效

梁丘俊材
2023-03-14
本文向大家介绍支持IE,firefxo,chrome浏览器下鼠标拖动和拖拽的鼠标指针特效,包括了支持IE,firefxo,chrome浏览器下鼠标拖动和拖拽的鼠标指针特效的使用技巧和注意事项,需要的朋友参考一下

核心代码

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>鼠标拖动和拖拽的鼠标指针特效</title>
<style>
#box{width:100px;height:100px;background:#966;position:absolute;left:100px;top:100px;cursor:pointer;}
</style>
</head>
<body>
<div id="box"></div>
<script>
var doc=document;
function getViewport(){
  return {width:Math.max(document.documentElement.clientWidth,document.documentElement.scrollWidth),
      height:Math.max(document.documentElement.clientHeight,document.documentElement.scrollHeight)
  };
}
function compareNum(x,minNum,maxNum){
 switch(true){
 case x<minNum:x=minNum;break;
 case x>maxNum:x=maxNum;break;
 default:x;
 }
 return x;
 }

box.style.left='100px'
box.style.top='100px'

box.onmousedown=function(e){
 var e=e||window.event;
 var maxL=getViewport().width-100,
   maxT=getViewport().height-100;
 this.startL=parseInt(this.style.left);
 this.startT=parseInt(this.style.top);
 //alert(e.clientX)
 this.startX=e.clientX;
 this.startY=e.clientY;
 //alert(maxL+':'+maxT+':'+L+':'+T)
 doc.onmousemove=function(e){
 posXY(e,0,0,maxL,maxT);
 };
 doc.onmouseup=function(){
  doc.onmousemove=null;
 doc.onmouseup=null;
 };
 return false;
}
function posXY(e,minL,minT,maxL,maxT){
  var e=e||window.event;
 var x=box.startL-(box.startX-e.clientX);
 var y=box.startT-(box.startY-e.clientY);
 box.style.left=compareNum(x,minL,maxL)+'px'
 box.style.top=compareNum(y,minT,maxT)+'px'
}
</script>
</body>
</html>


[Ctrl+A 全选 注:引入外部Js需再刷新一下页面才能执行]

 类似资料:
  • 本文向大家介绍JS鼠标拖拽实例分析,包括了JS鼠标拖拽实例分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了JS鼠标拖拽实现方法。分享给大家供大家参考,具体如下: JS代码: 完整代码: 希望本文所述对大家JavaScript程序设计有所帮助。

  • 有没有一种方法可以单击svg中的任何位置,并将元素捕捉到该位置,同时开始拖动? 我得到的最接近的是下面的代码。拖动圆可以工作,单击其他位置可以使圆移动到该位置,但我不知道如何在不释放鼠标并直接单击圆的情况下开始拖动。 更一般地说,如何在不直接与被拖动元素交互的情况下启动拖动行为? http://jsfiddle.net/Hj44M/1/

  • 我是 GraphStream 的新手,并且已经构建了一个最小的应用程序,其中 GraphStream 2.0 图形嵌入到 Swing 应用程序中。 在我的应用程序中,当我尝试拖动节点时,鼠标指针显然偏移了大约一半的面板大小(垂直和水平)。 这是代码: 下图显示了在中心拖动矩形节点时的鼠标指针位置(以红色包围)。 关于这个问题的原因有什么想法吗? 编辑: 下面是一个简短的GIF动画,显示了问题(显示

  • 当鼠标按下拖拽某div时,位置会跳一下,这个怎么解决? https://play.vuejs.org/#eNqlV29v20QY/yqHVamOlDmFl6GtxjQESExIE...

  • 拖放(Drag’n’Drop)是一个很赞的界面解决方案。取某件东西并将其拖放是执行许多东西的一种简单明了的方式,从复制和移动文档(如在文件管理器中)到订购(将物品放入购物车)。 在现代 HTML 标准中有一个 关于拖放的部分,其中包含了例如 dragstart 和 dragend 等特殊事件。 这些事件使我们能够支持特殊类型的拖放,例如处理从 OS 文件管理器中拖动文件,并将其拖放到浏览器窗口中。

  • 问题内容: 因此,正如标题所述,我想在鼠标拖动时移动椭圆。我先声明了椭圆并将其画出(因为我有8个椭圆,它们带有不同的颜色信息。四个是白色,另一个是红色)。我尝试做我对矩形所做的事情: 但这似乎不起作用。它给我一个错误 我有点困惑,因为我已经阅读了文档,并且Ellipse2D.Double存在这样的变量。 这是一个MCVE: 那么是否有替代算法,或者我只是在语法上缺少什么?我想知道解决方案。谢谢。