原生实现拖拽进行css定位的小工具
来源:互联网 发布:淘宝筛选发货地怎么改 编辑:程序博客网 时间:2024/06/06 23:19
前言
有些时候,用CSS实现一些不是太精确的定位,比如说不是严格的居中,或者是想把元素摆在自己想放的地方的时候往往比较麻烦,在没学JS的时候我也耐着性子调了一阵子,在学了JS拖拽这个功能之后决定要做一个简单的拖动就能实现CSS定位的JS小插件
用法
首先把需要拖拽的元素加上drag
类名,给相对定位的元素加上wrap
类名。点击拖拽元素放到想放的位置之后松开鼠标,将下方出现的文本框中的值复制下来,右击复制按钮可以删除创建出来的文本框。
复制之后在CSS文件中增加.drag
属性并将值粘贴到CSS文件中即可。
代码中复制数值到剪贴板的功能使用了clipboard.js
这个库,这是它的主页 和 GitHub主页 代码在head中创建script标签引入了这个库,特此说明。
/** * 生成一个input标签。向剪贴板写数据 */var cdnSrcipt = document.createElement("script");cdnSrcipt.src = 'https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/1.7.1/clipboard.min.js';document.getElementsByTagName("head")[0].appendChild(cdnSrcipt);window.onload = function() { var clipboard = new Clipboard('.btn'); var wrapObj = document.getElementsByClassName("wrap")[0]; var dragObj = document.getElementsByClassName("drag")[0]; var e1, e2; var x, y; var postioncondition; var inpt, copybutton; wrapObj.style.position = "relative"; dragObj.style.position = "absolute" /** * 参数a为拖动的对象,b为相对定位的对象 * @param {Object} a * @param {Object} b */ function crash(a, b) { //处理对象可以拖动的事件 a.onmousedown = function(e) { console.log("agsnsa"); e1 = e || event; document.onmousemove = function(e) { e2 = e || event; a.style.top = (e2.clientY - e1.offsetY) + "px"; a.style.left = (e2.clientX - e1.offsetX) + "px"; } } inpt = document.createElement("input"); inpt.id = "inpt"; copybutton = document.createElement("button"); copybutton.className = "btn"; a.onmouseup = function() { document.onmousemove = null; x = a.style.left; y = a.style.top; console.log("left: " + x + ";" + "top: " + y); postioncondition = "left: " + x + ";" + "top: " + y; copybutton.setAttribute("data-clipboard-action", "copy"); copybutton.setAttribute("data-clipboard-target", "#inpt"); copybutton.innerHTML = "复制输入框中内容"; inpt.type = "text"; document.body.appendChild(inpt); document.body.appendChild(copybutton); inpt.value = "left: " + x + ";" + "top: " + y; } copybutton.oncontextmenu = function() { document.body.removeChild(inpt); document.body.removeChild(copybutton); return false; } } crash(dragObj, wrapObj);}
阅读全文
0 0
- 原生实现拖拽进行css定位的小工具
- 【小工具】简单的倒计时(原生)
- 【小工具】原生JS的计算器
- 实现统计java程序代码的小工具
- VBS实现的日程提醒小工具
- Python 实现的关键词查找小工具
- 基于日志的代码缺陷自动定位小工具
- 对文本文件中的记录进行排序的小工具
- 使用 Google API 进行翻译的 Python 小工具
- 方便的小工具
- xorg的小工具
- 有意思的小工具
- 整理的小工具
- 实用的小工具
- 小工具的使用
- 用C语言实现解析简单配置文件的小工具
- 电脑上的滑动弹幕记单词小工具实现
- 使用node.js的http模块实现爬虫小工具
- Linux 应用开发
- 1018· 函数的使用4:求最大公约数(gcd)
- libjpeg-turbo(1)
- 《数据结构学习与实验指导》5-1:整数关键字的散列映射
- 使用Nexus搭建私服
- 原生实现拖拽进行css定位的小工具
- 对象创建模式之模块模式(Module Pattern)
- 整体二分,区间第K小(CRB and Queries,HDU 5412)
- WEB安全之XSS和CRSF攻击
- bzoj2463(博弈)
- linux下安装MYSQL5.7一步完成
- usb驱动之设备插拔检测
- 1108: 打印数字图形(函数专题)
- 中位数