原生js通过prottype写的一个简单拖拽
<!DOCTYPE html>
<head>
<meta charset="utf-8"/>
<title></title>
<style>
.box{
position:absolute;width:100px;height:100px;background-color:#FF6E3D;left:0px;top:0px;left:20px;
/*修饰*/
border-radius:50%;box-shadow: 5px 5px 15px rgba(42,56,123,0.5);
}
#box1{
position:absolute;width:100px;height:100px;background-color:#FF6E3D;left:200px;top:200px;left:20px;
/*修饰*/
border-radius:50%;box-shadow: 5px 5px 15px rgba(42,56,123,0.5);
}
</style>
</head> <body> <div class="box"></div>
<div id="box1"></div>
</body>
<script type="text/javascript">
//@zijian 2015/8/11
function Drag(id){
this.obj = document.getElementById(id)||document.getElementsByClassName(id)[0];//class or ID
this.disX = 0;
this.disY = 0;//Initialization parameters } Drag.prototype.init = function (){
var that = this;
this.obj.onmousedown = function (e){
var e = e || event;
that.mouseDown(e);
// Prevent the default event
return false;
};
}; // as the event is mouse
Drag.prototype.mouseDown = function (e){
var that = this;
this.disX = e.clientX - this.obj.offsetLeft; //Get mouse parameters for start
this.disY = e.clientY - this.obj.offsetTop; document.onmousemove = function (e){
var e = e || window.event; that.mouseMove(e);
}; document.onmouseup = function (){
that.mouseUp();
}
}; Drag.prototype.mouseMove = function (e){
this.obj.style.left = (e.clientX - this.disX) + 'px'; //Get mouse parameters for end
this.obj.style.top = (e.clientY - this.disY) + 'px';
}; Drag.prototype.mouseUp = function (){
document.onmousemove = null;
document.onmouseup = null; //mouse leave status
}; var drag = new Drag('box');
drag.init(); var drag1 = new Drag('box1');
drag1.init();
</script>
</html>
原生js通过prottype写的一个简单拖拽的更多相关文章
- Javascript写的一个可拖拽排序的列表
自己常试写了一个可拖拽进行自定义排序的列表,可能写的不太好,欢迎提供意见. 我的思路是将列表中的所有项都放进一个包裹层,将该包裹层设为相对定位,每当点击一个项时,将该项脱离文档并克隆一份重新添加到文档 ...
- 使用原生js与jQuery分别实现一个简单的tab页签
tab页签通常适用于空间有限而内容较多同时兼顾页面美观度不给用户一种信息过量视觉疲劳的情形.使用面非常广,下面我们用两种方法简单实现之. 首先,构建页面元素.页签的可点击部分我们通常用列表来承载,包括 ...
- 原生js及H5模拟鼠标点击拖拽
一.原生js 1.拖拽的流程动作 鼠标按下 触发onmousedown事件 鼠标移动 触发onmousemove事件 鼠标松开 触发onmouseup事件 2.注意事项: 要防止div移出可视框,要限 ...
- 原生JS取代一些JQuery方法的简单实现
原生JS取代一些JQuery方法的简单实现 下面小编就为大家带来一篇原生JS取代一些JQuery方法的简单实现.小编觉得挺不错的,现在就分享给大家,也给大家做个参考.一起跟随小编过来看看吧 1.选 ...
- 原生JS中apply()方法的一个值得注意的用法
今天在学习vue.js的render时,遇到需要重复构造多个同类型对象的问题,在这里发现原生JS中apply()方法的一个特殊的用法: var ary = Array.apply(null, { &q ...
- 只是一个用EF写的一个简单的分页方法而已
只是一个用EF写的一个简单的分页方法而已 慢慢的写吧.比如,第一步,先把所有数据查询出来吧. //第一步. public IQueryable<UserInfo> LoadPagesFor ...
- 写了一个简单的CGI Server
之前看过一些开源程序的源码,也略微知道些Apache的CGI处理程序架构,于是用了一周时间,用C写了一个简单的CGI Server,代码算上头文件,一共1200行左右,难度中等偏上,小伙伴可以仔细看看 ...
- 自己写的一个简单PHP采集器
自己写的一个简单PHP采集器 <?php //**************************************************************** $url = &q ...
- 写了一个简单可用的IOC
根据<架构探险从零开始写javaweb框架>内容写的一个简单的 IOC 学习记录 只说明了主要的类,从上到下执行的流程,需要分清主次,无法每个类都说明,只是把整个主线流程说清楚,避免 ...
随机推荐
- Node.js入门教程:Node.js如何安装配置并部署第一个网站
前言:作为一个资深的前端开发人员,不懂的Node.js 那你绝对是不能跟别人说你是资深的前端程序猿滴! 今天洋哥就来和大家一起学习被大牛称之为前端必学的技能之一Node! 那么Node到底是什么呢? ...
- MVC简单分层思想(连接数据库)
图片内容是所有的包名,文件名. 1.创建(M)模型 package oa.bean; public class User { private String userName; private Stri ...
- GreenDao介绍
GreenDao介绍 greenDAO 是一个将对象映射到 SQLite 数据库中的轻量且快速的 ORM 解决方案 何为ORM? ORM(Object/Relation Mapping): 对象/关系 ...
- Android Paint的属性
在Paint中有很多的属性可以设置,比如可以设置阴影,颜色过滤等等,这些会产生不同的奇妙效果,今天就对各种属性探索一下. 方法一: 1 //设置绘制的颜色,a代表透明度,r,g,b代表颜色值. 2 s ...
- wcscpy_s与wcsncpy
今天运行以下代码时一直出错 void Foo(const wchar_t* lpch, int len) { ... wchar_t *str = ]; wcscpy_s(str, len, lpch ...
- 【Qt学习笔记】窗口部件整理
关于Qt中窗口部件的学习 今天开始学习Qt的窗口部件,领略一下Qt的神奇之处,记得2012年的那年冬天,我还学Java呢,现在基本上和Java说再见了,不过对于嵌入式的开发Qt还是举足轻重的,我想趁着 ...
- java split进行字符串分割
在java.lang包中有String.split()方法,返回是一个数组 我在应用中用到一些,给大家总结一下,仅供大家参考: 1.如果用"."作为分隔的话,必须是如下写法,Str ...
- 关于去除Eclipse对JavaScript的验证
关于去除Eclipse对JavaScript的验证 在我们使用大量JavaScript作为一些UI或其他组件来使用时,很多情况下,明明引用的这些JavaScript是可以正常使用的,但Eclipse却 ...
- 移动端js写法
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...
- qt creator 使用Ui文件的问题
一.显式地调用uic.exe 如何将UI文件生成头文件 1,将设计的UI文件拷贝到uic.exe的目录下Qt\Qt5.3.2\5.3\mingw482_32\bin. 2, 打开windows的CMD ...