js:简单的拖动效果
效果演示:https://jsfiddle.net/dwqs/b5ywws9f/embedded/result/
html:
<div class="wrap">
<div id="boxmove" style="left:150px;top:150px;"> movebox </div>
</div>
css
#boxmove{
position: absolute;
width: 200px;
border:1px solid #ccc;
height: 200px;
color: red;
background-color: blue;
text-align: center;
font-size: 30px;
}
js
var o, //捕获到的事件
X, //boxmove水平宽度
Y; //boxmove垂直高度
function getObject(obj,e){ //获取捕获到的对象
o = obj;
// document.all(IE)使用setCapture方法绑定;其余比方FF使用
//Window对象针对事件的捕捉
document.all?o.setCapture() : window.captureEvents(Event.MOUSEMOVE);
X = e.clientX - parseInt(o.style.left); //获取宽度,
Y = e.clientY - parseInt(o.style.top); //获取高度,
}
document.getElementById("boxmove").onmousedown = function(e){
//boxmove捕获事件并处理 e-->FF window.event-->IE
getObject(this,e||event);
};
document.onmousemove = function(dis){ //鼠标移动事件处理
if(!o){
return;
}
if(!dis){ //事件
dis = event ;
}
//设定boxmovebox样式随鼠标移动而改变o.style.left = dis.clientX - X +"px";
o.style.top = dis.clientY - Y + "px";};
document.onmouseup = function(){
//鼠标松开事件处理
if(!o){ return; }
// document.all(IE)使用releaseCapture解除绑定。
//其余比方FF使用window对象针对事件的捕捉
document.all?o.releaseCapture() : window.captureEvents(
Event.MOUSEMOVE|Event.MOUSEUP)
o = ''; //还空对象
};
须要注意的是,由于须要更改div的left和top。
这两个属性须要以内联方式给出,否则不行。
原文:http://www.ido321.com/1489.html
參考文档:
https://developer.mozilla.org/en-US/docs/Web/API/Window/captureEvents
https://developer.mozilla.org/zh-CN/docs/Web/API/element/setCapture
https://developer.mozilla.org/zh-CN/docs/Web/API/Document/releaseCapture
js:简单的拖动效果的更多相关文章
- 使用jquery实现简单的拖动效果,分享源码
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAkEAAAERCAIAAADzAOSQAAALRklEQVR4nO3dW5LaaAKEUfa/NkfMGu
- 使用jQuery实现简单的拖动效果
转自:http://www.muzilei.com/archives/136 如何实现拖动效果? 浏览DEMO 首先分析下拖动效果原理: 1.当鼠标在被拖动对象上按下鼠标(触发onmousedown事 ...
- jquery简单的拖动效果
<!DOCTYPE html> <html> <meta http-equiv="Content-Type" content="text/h ...
- CSS3及JS简单实现选项卡效果(适配手机端和pc端)
想要适配手机端和pc端,有几种简单的方法,本人使用的是百分比分配的方法. *{ padding: 0; margin: 0; } body,html{ width: 100%; height: 100 ...
- js 实现win7任务栏拖动效果
前言 在某个时刻, 我认识了一个朋友. 此人在我的教唆下, 踏上了js的不归路. 前天他问我, Win7任务栏拖动效果怎么实现. 我随口就跟他说, 这简单的一逼. 在我一晚上的折腾之后, 一份潦草的代 ...
- js简单 图片版时钟,带翻转效果
js简单 图片版时钟,带翻转效果 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"& ...
- js实现一个可以兼容PC端和移动端的div拖动效果
前段时间写了一个简单的div拖动效果,不料昨天项目上正好需要一个相差不多的需求,就正好用上了,但是在移动端的时候却碰到了问题,拖动时候用到的三个事件:mousedown.mousemove.mouse ...
- 史上最简单的js+css3实现时钟效果
今天我看到百度搜索的时间那个效果不错,于是就产生了模仿一下的效果,不过为了节省时间,就随便布了下局,废话不多说,先看看效果吧,顺便把百度的效果也拿过来. 对比样子差了好多啊,但是基本功能都是实现了的, ...
- HTML 通过js实现div的拖动效果
最近做项目,碰到一个问题,需要对div实现拖动效果. 在度娘找了很多,要么觉得代码太长,要么就是效果不理想,不过最后还是找到了一个不错的,感谢大神的留贴,方便了我们,就把代码贴下面了: <!DO ...
随机推荐
- C++友元函数和运算符重载
非成员友元函数.成员友元函数和友元类 1.友元的作用: (1)友元提供了不同类的成员函数之间.类的成员函数与一般函数之间进行了数据共享的机制: 2.友元的优点和缺点 优点:提高程序的运行效率: 缺点: ...
- mysql5.7 在Centeros 6 下自动安装的shell脚本
概述: 此脚本实现了在Centeros 6版本下自动安装mysql5.7到目录 /opt/mysql-5.7*并且做软连接映射到 /usr/local/mysql,自动修改root密码为:123456 ...
- 【集合遍历-Java】
遍历List集合的三种方法 1.增强for循环 for(String str : list) {//其内部实质上还是调用了迭代器遍历方式,这种循环方式还有其他限制,不建议使用. System.out. ...
- Openstack实验笔记
Openstack实验笔记 制作人:全心全意 Openstack:提供可靠的云部署方案及良好的扩展性 Openstack简单的说就是云操作系统,或者说是云管理平台,自身并不提供云服务,只是提供部署和管 ...
- LINUX:关于Redis集群搭建 、和搭建项目中遇到的问题
文章来源:http://www.cnblogs.com/hello-tl/p/7804225.html 0.Redis的简单安装 1.安装redis依赖 # yum install gcc tcl g ...
- 关于Kubernetes v1.14.0的 kube-controller-manager部署
1. kube-controller-manager准备 默认kube-controller-manager 部署在kube-apiserver部署的服务器上面服务器的配置等在这就不在列出来 二进制文 ...
- sql模糊查询,解除绑定的单号
--610007570320-610007571319 1000张 delete from (select t.* from (select t1.bill_code, t1.bind_code, t ...
- python013 Python3 循环语句
Python3 循环语句本章节将为大家介绍Python循环语句的使用.Python中的循环语句有 for 和 while.Python循环语句的控制结构图如下所示: while 循环Python中wh ...
- Leetcode 306.累加数
累加数 累加数是一个字符串,组成它的数字可以形成累加序列. 一个有效的累加序列必须至少包含 3 个数.除了最开始的两个数以外,字符串中的其他数都等于它之前两个数相加的和. 给定一个只包含数字 '0'- ...
- 【Kubernetes】Kubernetes删除namespace后持续terminating状态
删除isti和foo的配置文件之后,namespace持续terminating状态,此时也无法再创建istio-system的namespace namespace "istio-syst ...