原生js 简单拖拽
来源:互联网 发布:php留言板代码 编辑:程序博客网 时间:2024/06/18 02:34
var params={
left:0,
top:0,
currentX:0,
currentY:0,
flag:false
}
var getCss=function(o,key){
return o.currentStyle? o.currentStyle[key] : document.defaultView.getComputedStyle(o,false)[key];
}
var drag=function(bar,target,callback){
params.left=getCss(target,"left");
params.top=getCss(target,"top");
bar.onmousedown=function(e){
var e=e||window.event;
params.flag=true;
params.currentX=e.clientX;
params.currentY=e.clientY;
e.stopPropagation();
}
document.onmousemove=function(e){
var e=e||window.event;
if(params.flag){
var nowX=e.clientX;
var nowY=e.clientY;
target.style.left=parseInt(params.left)+(nowX-params.currentX)+"px";
target.style.top=parseInt(params.top)+(nowY-params.currentY)+"px";
}
}
document.onmouseup=function(){
params.flag=false;
if(typeof callback == "function"){
if(callback(parseInt(target.style.left),parseInt(target.style.top))){
params.left=getCss(target,"left");
params.top=getCss(target,"top");
}else{
target.style.left=params.left;
target.style.top=params.top;
}
}
}
}
left:0,
top:0,
currentX:0,
currentY:0,
flag:false
}
var getCss=function(o,key){
return o.currentStyle? o.currentStyle[key] : document.defaultView.getComputedStyle(o,false)[key];
}
var drag=function(bar,target,callback){
params.left=getCss(target,"left");
params.top=getCss(target,"top");
bar.onmousedown=function(e){
var e=e||window.event;
params.flag=true;
params.currentX=e.clientX;
params.currentY=e.clientY;
e.stopPropagation();
}
document.onmousemove=function(e){
var e=e||window.event;
if(params.flag){
var nowX=e.clientX;
var nowY=e.clientY;
target.style.left=parseInt(params.left)+(nowX-params.currentX)+"px";
target.style.top=parseInt(params.top)+(nowY-params.currentY)+"px";
}
}
document.onmouseup=function(){
params.flag=false;
if(typeof callback == "function"){
if(callback(parseInt(target.style.left),parseInt(target.style.top))){
params.left=getCss(target,"left");
params.top=getCss(target,"top");
}else{
target.style.left=params.left;
target.style.top=params.top;
}
}
}
}
0 0
- 原生js 简单拖拽
- js原生拖拽
- JS原生拖拽
- js原生拖拽效果
- 原生js实现拖拽
- js原生拖拽功能
- 【原生JS】简单放大镜效果
- 手把手原生js简单轮播图
- 手把手原生js简单轮播图
- 手把手原生js简单轮播图
- vuejs2.0运用原生js实现简单的拖拽元素功能
- vuejs2.0运用原生js实现简单的拖拽元素功能
- 原生js实现节点拖拽
- 原生js实现拖拽功能基本思路
- 原生js 实现节点拖拽
- 原生JS基础之拖拽效果
- 简单实现原生JS中的多重继承
- 原生js实现简单的展开收缩
- Oracle常用函数
- arraylist等记录修改次数modCount有什么作用?
- English-Walt Disney Company
- 待解决的问题 线程冲突!
- c++错题
- 原生js 简单拖拽
- Connection #Facebook Relay文档翻译#
- 三种三栏网页宽度自适应布局方法
- gradle笔记
- 观察者设计模式
- 数组的增删改查的C语言实现
- 搭建Spark分布式集群
- 单点登录实现思路
- JPush极光推送