JavaScript - 元素拖动
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>JavaScript实现元素拖动</title> <style> *{ margin: 0; } #app{ width: 100vw; height: 100vh; background: #9acfea; position: relative; } #content{ width: 100px; height: 100px; position: fixed; background: #ff6700; border-radius: 10px; cursor: pointer; } </style> </head> <body> <div id="app"> <div id="content" data-type="0"></div> </div> <script type="text/javascript"> let content = document.getElementById("content"); window.onmousedown = function (ev) { /* * 获取当前鼠标左键位置元素 * */ let ele = document.elementFromPoint(ev.clientX,ev.clientY); /* * 如果该位置元素属性data-type值为1则将该元素设为选中态 * */ if (ev.buttons===1 && ele.dataset.type==="0"){ ele.dataset.selected = true; if (ev.offsetX ===0 && ev.offsetY===0){ content.dataset.x = ev.layerX.toString(); content.dataset.y = ev.layerY.toString(); } else { content.dataset.x = ev.offsetX.toString(); content.dataset.y = ev.offsetY.toString(); } } }; window.onmousemove = function (ev) { /* * 如果有选中态元素存在,移动选中态的元素 * */ if (content.dataset.selected === "true") { let pad_x = parseInt(content.dataset.x); let pad_y = parseInt(content.dataset.y); let flag = ev.clientX>pad_x && ev.clientX<window.innerWidth+pad_x-100 && ev.clientY>pad_y && ev.clientY<window.innerHeight+pad_y-100; if (flag){ content.style.marginLeft = (ev.clientX-pad_x)+'px'; content.style.marginTop = (ev.clientY-pad_y)+'px'; } } }; window.onmouseup = function (ev) { /* * 鼠标左键弹起后如果有选中态元素,将它设为未选中态 * */ if (content.dataset.selected = true) { content.dataset.selected = false; } } </script> </body> </html>
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
MaskRCNN-Benchmark(Pytorch版本)训练自己的数据以及避坑指南
一、安装 地址:MaskRCNN-Benchmark(Pytorch版本) 首先要阅读官网说明的环境要求,千万不要一股脑直接安装,不然后面程序很有可能会报错!!! PyTorch 1.0 from a nightly release. It will not work with 1.0 nor 1.0.1. Installation instructions can be found in https://pytorch.org/get-started/locally/ torchvision from master cocoapi yacs matplotlib GCC >= 4.9 OpenCV # first, make sure that your conda is setup properly with the right environment # for that, check that `which conda`, `which pip` and `which python` points to the # right path. From a clean con...
- 下一篇
django 定时任务 django-crontab 的使用
1、前言 在做 django 开发需求时,多多少少都会遇到需要定时任务的功能,比如定时执行任务,检查订单之类的。可能是一段时间,比如每隔 10分钟执行一次,也可能是定点时间,比如 14:00 执行,也可能是长时间,比如每周几,每个月的哪一天等。查看了一下相关资料, django 定时任务 django-crontab 库比较多教程和资料,虽然 star 数才五百,但是 API 接口比较简单,接入也很方便,功能也很全面,当然,也存在一此无法解决的问题,使用时需要注意的。 2、使用教程 1.安装: pip install django-crontab 2.添加配置到 settings.py INSTALLED_APPS 中 INSTALLED_APPS = ( 'django_crontab', ... ) 3.编写定时函数: 定时任务可以分成两种,一种是执行自定义的 mange.py 的命令,另一种是执行自定义函数。 在django的app中新建一个myapp/cron.py文件,把需要定时执行的代码放进去 示例: def my_scheduled_job(): pass 4.在 set...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- CentOS8编译安装MySQL8.0.19
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS关闭SELinux安全模块
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7