支持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>

鼠标拖动和拖拽的鼠标指针特效

#box{width:100px;height:100px;background:#966;position:absolute;left:100px;top:100px;cursor:pointer;}

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 xmaxNum: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'

}

[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]

(0)

相关推荐

  • Java实现鼠标拖拽移动界面组件

    默认的,Frame或者JFrame自身已经实现了鼠标拖拽标题栏移动窗口的功能. 只是,当你不满意java的JFrame样式,隐藏了标题栏和边框,又或者干脆直接使用JWindow,那你又该怎么实现鼠标拖拽移动窗口的目的呢?最开始,我简单的在mouseDragged方法里frame.setLocation(e.getX(), e.getY()),结果,frame拖拽的时候不停地闪烁,位置在屏幕上不断跳动.后来网上查资料,找到了答案. 这里给一个简单的示例,一看就明白: package com.jeb

  • AjaxUI:鼠标拖拽

    New Document body{padding:0px;text-align:center;font:12px Arial;} div.container{width:100px;height:100px;border:1px solid #000;margin:10px auto;} div#main{width:99px;height:99px;border:1px solid #000;background:#050;color:#fff;font:12px Arial;margin:

  • js实现百度登录框鼠标拖拽效果

    以百度的登录窗口为例,学习鼠标拖拽效果如何实现,拖拽范围限定以及登录窗口自动居中.学会如何制作弹出窗口特效,了解把元素设置为可拖拽的原理. 知识点: 1.掌握对可拖拽对话框的实现原理 2.了解元素如何触发脚本方法以及如何编写侦听事件 3. 学会设置元素在页面中居中和全屏 注意区别: 1.screenX:鼠标位置相对于用户屏幕水平偏移量,而screenY也就是垂直方向的,此时的参照点也就是原点是屏幕的左上角. 2.clientX:跟screenX相比就是将参照点改成了浏览器内容区域的左上角,该参照

  • jquery实现鼠标拖拽滑动效果来选择数字的方法

    本文实例讲述了jquery实现鼠标拖拽滑动效果来选择数字的方法.分享给大家供大家参考.具体如下: 这是使用jquery ui实现的一个精美实用的效果,可以通过鼠标拖拽滑动效果来选择数字 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns

  • javascript简单拖拽实现代码(鼠标事件 mousedown mousemove mouseup)

    mousedown 的时候创建拖动对象,mouseup的时候释放对象,原理弄清楚了其实很简单. 简单拖拽实现代码: 简单拖拽实现 *{margin:0;padding:0;} #box{ margin:20px auto; position:relative; width:400px; height:400px; background:#ccc; border:1px solid #333; postion:relative; } #dragBox{ width:50px; height:50p

  • 基于jquery实现的鼠标拖拽元素复制并写入效果

    直接上代码: 复制代码 代码如下: <!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-eq

  • 超酷的鼠标拖拽翻页(分页)效果实现javascript代码

    拖动分页 body{ border:0px; margin:0px; overflow:hidden; background-color:transparent; font-family:宋体; } .page{ position:absolute; width:700px; border:1px solid #999; background-color:#000; left:425px; margin-left:-350px; cursor:default; z-index:0; } ul{

  • 鼠标拖拽移动子窗体的JS实现

    1.子窗体 在设计网站的时候,我们需要设计一些模态的子窗体,比如 这一步很容易实现,只需要div+css就ok了,请看代码: 复制代码 代码如下: <div class="modal-background"></div>    <div class="modal-window">        <div class="head">            <center>点住着块区域可以改

  • jsMind通过鼠标拖拽的方式调整节点位置

    jsMind是一个纯javascript实现的思维导图类库,基于html5的canvas实现,以BSD协议开源. 提供了思维导图的显示,编辑等功能,支持freemind数据格式,有丰富的开发接口可供使用,具体功能请访问软件主页进一步了解. jsMind 现已支持通过鼠标拖拽的方式调整节点位置了.只需引用最新版本的 jsmind.js 以及 jsmind.draggable.js 即可使用该功能.需要注意的是,当思维导图设置为不可编辑的时候,拖拽功能也将同时禁止. 请访问 项目主页:http://

  • js实现使用鼠标拖拽切换图片的方法

    本文实例讲述了js实现使用鼠标拖拽切换图片的方法.分享给大家供大家参考.具体实现方法如下: <script type="text/javascript" src="js/jquery.min.js"></script> <style type="text/css"> *{margin:0;padding:0;} .m-slider{width:600px;margin:0 auto 10px !importan

随机推荐