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条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS6,CentOS7官方镜像安装Oracle11G
- Dcoker安装(在线仓库),最新的服务器搭配容器使用
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2全家桶,快速入门学习开发网站教程
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- CentOS7,8上快速安装Gitea,搭建Git服务器
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- CentOS关闭SELinux安全模块