JS——拖拽封装
来源:互联网 发布:记忆力训练软件哪种好 编辑:程序博客网 时间:2024/06/03 10:27
<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>Document</title><style>#d1{position: fixed;top:100px;left: 100px;width: 200px;height: 200px;background: #ddd;}</style></head><body><div id="d1"></div><script>//http://www.zhangxinxu.com/wordpress/2010/03/javascript%E5%AE%9E%E7%8E%B0%E6%9C%80%E7%AE%80%E5%8D%95%E7%9A%84%E6%8B%96%E6%8B%BD%E6%95%88%E6%9E%9C/var params = {left: 0,top: 0,currentX: 0,currentY: 0,flag: false};//获取相关CSS属性var getCss = function(o,key){return o.currentStyle? o.currentStyle[key] : document.defaultView.getComputedStyle(o,false)[key]; };//拖拽的实现var startDrag = function(bar, target, callback){if(getCss(target, "left") !== "auto"){params.left = getCss(target, "left");}if(getCss(target, "top") !== "auto"){params.top = getCss(target, "top");}//o是移动对象bar.onmousedown = function(event){params.flag = true;if(!event){event = window.event;//防止IE文字选中bar.onselectstart = function(){return false;} }var e = event;params.currentX = e.clientX;params.currentY = e.clientY;};document.onmouseup = function(){params.flag = false;if(getCss(target, "left") !== "auto"){params.left = getCss(target, "left");}if(getCss(target, "top") !== "auto"){params.top = getCss(target, "top");}};document.onmousemove = function(event){var e = event ? event: window.event;if(params.flag){var nowX = e.clientX, nowY = e.clientY;var disX = nowX - params.currentX, disY = nowY - params.currentY;target.style.left = parseInt(params.left) + disX + "px";target.style.top = parseInt(params.top) + disY + "px";if (event.preventDefault) {event.preventDefault();}return false;}if (typeof callback == "function") {callback(parseInt(params.left) + disX, parseInt(params.top) + disY);}}};startDrag(d1,d1);</script></body></html>
阅读全文
0 0
- JS——拖拽封装
- js中的信息隐藏——封装
- JS插件封装——生成表格
- JS组件系列——封装自己的JS组件
- js笔记:Js封装库——css选择器
- d3.js——文本换行的封装
- JS —— 轮播图中的缓动函数的封装
- js面向对象编程:包装明星——封装
- JS——封装一个可以连缀的DOM库
- JS组件系列——自己动手封装bootstrap-treegrid组件
- angular2封装组件(一)——引用js包
- js框架封装(一)——框架介绍
- js框架封装(二)——选择器框架
- Vue.js组件封装——下拉列表
- 【 D3.js 高级系列 — 1.1 】 封装文本自动换行
- WEUI应用,用JS封装常用信息—Progress
- WEUI应用,用JS封装常用信息—ActionSheet
- JS封装
- BZOJ2761 [JLOI2011]不重复数字
- Webview设置
- 【智能金融】埃森哲:机器学习在银行业务中的应用
- PHP入门——gii使用
- 微信小程序下拉刷新/上拉加载更多
- JS——拖拽封装
- Hibernate单独使用 (二)表操作深入、主键、自动生成映射文件
- 京东11.11:京麦服务市场交易平台备战实践
- logstash 中报错 ArgumentError invalid byte sequence in UTF-8
- 修饰符
- 【深度】关于天基信息网络综合管控系统建设的思考
- 【SMS】SMS协议介绍之常用缩语
- js下firstElementChild以及firstChild,Children的用法
- Java链接MySQL时遇到的问题