Javascript:简单拖拽效果的实现
核心代码:
/*
*完成一个拖拽事件由三大事件组成:
*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:简单拖拽效果的实现的更多相关文章
- js实现简单拖拽效果
方法如下: var params = { left: 0, top: 0, currentX: 0, currentY: 0, flag: false }; var getCss = function ...
- javascript简单拖拽(鼠标事件 mousedown mousemove mouseup)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xht ...
- 拖拽系列一、JavaScript实现简单的拖拽效果
前端拖拽相关应用汇总 在现实生活中就像男孩子牵着(拖着)女朋友的手穿过马路:从马路的一端走到另一端这种场景很常见: 而在前端开发中拖拽效果也算是前端开发中应用最常见.最普遍的特效:其拖拽涉及知 ...
- jQuery的DOM操作实例(2)——拖拽效果&&拓展插件
一.原生JavaScript编写拖拽效果 二.jQuery编写的拖拽效果 三.在jQuery中拓展一个拖拽插件
- JavaScript实现最简单的拖拽效果
一.一些无关痛痒的唠叨 拖拽还是挺不错的一个页面效果,我个人认为,其生命力在于可以让用户自己做一些操作,所谓自定义.例如: ①浏览器标签顺序的拖拽切换 现在基本上所有的选项卡式的浏览器都有顺序拖拽切换 ...
- [javascript]一种兼容性比较好的简单拖拽
作为一个马上要找工作.非计算机专业.热爱前端的大四狗,最近开始疯狂写demo.看书,准备九.十月份的校招. 晚上用js实现了一个比较简单(low)的拖拽效果,初步测试兼容性还是不错的,于是写一段小博文 ...
- 学习笔记---Javascript事件Event、IE浏览器下的拖拽效果
学习笔记---Javascript事件Event.IE浏览器下的拖拽效果 1. 关于event常用属性有returnValue(是否允许事件处理继续进行, false为停止继续操作).srcE ...
- jquery监听事件on写法以及简单的拖拽效果
引子——关于jquery的某些写法 我先不对监听事件做解释,我们先来看下jquery的一些写法吧!我们最常用的是jquery的css()方法,相信大家都会用! 假如用css设置一个属性,我们写法如下: ...
- 原生js简单实现拖拽效果
实现弹窗拖拽效果的原理是:按下鼠标并移动——拖拽移动物体,抬起鼠标——停止移动.主要触发三个事件:onmousedown.onmousemove以及onmouseup: 首先搭建结构:一个宽350px ...
随机推荐
- git some cookies
*首先得配置和本地的操作实际上都很简单,忽略了:*git 添加远程仓库 git remote add 仓库名 url:*先pull下来,语法 git pull 远程仓库名 远程分支名[:当地分支名], ...
- Windows下查看端口被程序占用的方法
有时安装程序时,会出现XX端口被占用的情况,可以通过CMD命令查看什么程序占用 1. netstat -ano 查看相应端口对应程序的PID 例如: C:\>netstat -ano A ...
- libthrift0.9.0解析(二)之TSimpleServer
TSimpleServer简单实现Tserver,代码如下. /** * Simple singlethreaded server for testing. * */ public class TSi ...
- 侧滑RESideMenu的使用
MainTabBarViewController *mainCtrl = [[MainTabBarViewController alloc] init]; LeftViewController *le ...
- ecshop模板如何修改详细图解
ecshop模板如何修改?很多人在问这个问题,今天就以图解的方式给大家详细说下.相信学完之后,你会很清楚如何修改ecshop模板,不管你是初学者还是程序高手. 1, ecshop的模板结构 ecsho ...
- javascript 关于一周前一个月前的处理方法
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- PHPCMS v9 模型概念及用法
phpcms v9 模型概念 一.什么是模型? 模型是系统知识的抽象表示.我们不能仅仅通过语言来描述一个系统,也不能仅仅通过记忆来记录关于系统的知识.知识是通过某种媒介来表达的,这种媒介所表达的内容就 ...
- Symfony2 是什么(转)
本文转自:http://www.cnblogs.com/Seekr/archive/2012/06/15/2550894.html Symfoy2 是什么? PHP世界里又一广受关注的web MVC框 ...
- 三元运算和lambda表达式
19.三目运算,三元运算: if else 的简写: name = 'alex' if 1 == 1 else 'SB' ==> 等价于 if 1 == 1: ...
- Objective C内存管理之理解autorelease------面试题
Objective C内存管理之理解autorelease Autorelease实际上只是把对release的调用延迟了,对于每一个Autorelease,系统只是把该Object放入了当前的A ...