核心代码:

/*
*完成一个拖拽事件由三大事件组成:
*1:onmousedown:选择元素
*2:onmousemove:移动元素
*3:onmouseup:释放元素
*/
function drag(obj){ obj.onmousedown=function(ev){
var ev=ev || event;
var disX=ev.clientX-this.offsetLeft;
var disY=ev.clientY-this.offsetTop;
//IE下选中文字后移动时,文字跟着移动的BUG
if(obj.setCapture){
obj.setCapture();
}
document.onmousemove=function(ev){ //此时采用document,而不采用obj,是因为采用obj时,鼠标移动太快,obj会跟不上鼠标的速度,而采用document,只要鼠标不脱离文档流,obj都可以灵活移动
var L=ev.clientX-disX;
var T=ev.clientY-disY;
var maxL=document.documentElement.clientWidth-obj.offsetWidth;
if(L<200){
//设置移动边界值
//直接改变L值,比如200,可以实现磁性吸附效果
L=0;
} else if(L>maxL){
L=maxL;
}
obj.style.left=L+'px';
obj.style.top=T+'px';
}
return false;
} obj.onmouseup=function(){
document.onmousemove=document.onmouseup=null;
if(obj.releaseCapture){
obj.releaseCapture();
}
return false;
} }

DEMO:

在线演示:http://codepen.io/anon/pen/OVBEpM

<div id="words">这是文字这是文字这是文字这是文字这是文字</div>
<div id="div1"></div> <script>
var oDiv=document.getElementById('div1');
var oWords=document.getElementById('words'); drag(oDiv);
drag(oWords);
</script>

  

 

Javascript:简单拖拽效果的实现的更多相关文章

  1. js实现简单拖拽效果

    方法如下: var params = { left: 0, top: 0, currentX: 0, currentY: 0, flag: false }; var getCss = function ...

  2. javascript简单拖拽(鼠标事件 mousedown mousemove mouseup)

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xht ...

  3. 拖拽系列一、JavaScript实现简单的拖拽效果

        前端拖拽相关应用汇总 在现实生活中就像男孩子牵着(拖着)女朋友的手穿过马路:从马路的一端走到另一端这种场景很常见: 而在前端开发中拖拽效果也算是前端开发中应用最常见.最普遍的特效:其拖拽涉及知 ...

  4. jQuery的DOM操作实例(2)——拖拽效果&&拓展插件

    一.原生JavaScript编写拖拽效果 二.jQuery编写的拖拽效果 三.在jQuery中拓展一个拖拽插件

  5. JavaScript实现最简单的拖拽效果

    一.一些无关痛痒的唠叨 拖拽还是挺不错的一个页面效果,我个人认为,其生命力在于可以让用户自己做一些操作,所谓自定义.例如: ①浏览器标签顺序的拖拽切换 现在基本上所有的选项卡式的浏览器都有顺序拖拽切换 ...

  6. [javascript]一种兼容性比较好的简单拖拽

    作为一个马上要找工作.非计算机专业.热爱前端的大四狗,最近开始疯狂写demo.看书,准备九.十月份的校招. 晚上用js实现了一个比较简单(low)的拖拽效果,初步测试兼容性还是不错的,于是写一段小博文 ...

  7. 学习笔记---Javascript事件Event、IE浏览器下的拖拽效果

    学习笔记---Javascript事件Event.IE浏览器下的拖拽效果     1. 关于event常用属性有returnValue(是否允许事件处理继续进行, false为停止继续操作).srcE ...

  8. jquery监听事件on写法以及简单的拖拽效果

    引子——关于jquery的某些写法 我先不对监听事件做解释,我们先来看下jquery的一些写法吧!我们最常用的是jquery的css()方法,相信大家都会用! 假如用css设置一个属性,我们写法如下: ...

  9. 原生js简单实现拖拽效果

    实现弹窗拖拽效果的原理是:按下鼠标并移动——拖拽移动物体,抬起鼠标——停止移动.主要触发三个事件:onmousedown.onmousemove以及onmouseup: 首先搭建结构:一个宽350px ...

随机推荐

  1. 初识web01

    Tomcat   服务器        B/S    浏览器/服务器      C/S    客户端/服务器   URI:统一资源标识符   大  广   /项目名   URL:统一资源定位符     ...

  2. 关于HttpServlet和Servlet以及doPost和doGet关系

    这两天在看Servlet和Jsp,spring太难了,还是先看看基础,只怪自己太弱了. Servlet是一个接口,本身定义的是一种网络服务,HttpServlet是已经实现了Servlet接口,也就是 ...

  3. junit测试用例加载spring配置文件

    junit加载pom引用项目的xml配置文件,如果定义了<beans profile="dev">,必须在测试用例类上面加上标记 @ActiveProfiles(&qu ...

  4. sublime开启php自动代码补全

    配置文件添加 "auto_complete_selector": "source, text", 配置文件打开方式:preferences->settin ...

  5. PHP Math

    PHP Math 简介 Math 函数能处理 integer 和 float 范围内的值. 安装 PHP Math 函数是 PHP 核心的组成部分.无需安装即可使用这些函数. PHP 5 Math 函 ...

  6. ajax上传文件进度条

    <!doctype html> <html> <head> <meta charset="utf-8"> <title> ...

  7. 查找Mysql数据库连接jar包和对应的Driver和Url

    以前写jdbc连接向来都是直接copy,对于连接数据库的jar包在哪下载,对应的Driver类是哪一个,数据库连接串怎么找等等都没有做过,今天从零开始整了一遍. 使用的数据库是Mysql 一.已安装了 ...

  8. Java之简单的聊天工具

    今天整理资料的时候,找出自己几年前刚学Java时做过的一个简易的聊天工具,有服务器也有客户端,能发送文字消息和文件,但是用户上线并未存入数据库,而只是简单的缓存在服务器的一个数组中,所以,只要服务器一 ...

  9. html表格table设置边框

    对于很多初学HTML的人来说,表格<table>是最常用的标签了,但对于表格边框的控制,很多初学者却不甚其解. 一般我们用表格的时候总会给它个border属性,比如:<table b ...

  10. linux中top命令详解

    linux的top命令里的cpu信息是什么意思呢? Cpu(s): 62.1% us, 15.9% sy,0.1% ni, 19.4% id,2.0% wa,0.1% hi,0.4% si Mem:  ...