html跟随鼠标事件,HTML5深入学习之鼠标跟随,拖拽事件
知识点(鼠标跟随):
mousedown: 当用户用鼠标点击在某一元素上就会触发该事件
mouseover: 当鼠标指针在某一元素上移动就会触发改事件
下面这个例子的效果就是鼠标点击元素后,元素跟着鼠标移动
独秀不爱秀
* {
padding: 0;
margin: 0;
}
#one {
width: 100px;
height: 100px;
background-color: red;
position: absolute;
}
window.onload = function () {
var one = document.getelementbyid('one');
// mousedown鼠标事件:当用户点击鼠标在元素上就会触发该事件
one.addeventlistener('mousedown', function () {
// mousemove 鼠标事件:当鼠标指针在元素上移动就会触发此事件
/**
* e:指事件,在火狐浏览器中事件用window.event,所以只有把 event
* 所以只有把event传给函数使用。为了兼容火狐和浏览器,一般会在函数里自动
* 重新赋值: e = e || window.event;
*/
document.addeventlistener('mousemove', function (e) {
one.style.left = e.clientx + 'px';
one.style.top = e.clienty + 'px';
});
});
}
知识点(鼠标拖拽)
dragstart: 用户开始拖拽时触发该事件
drag: 用户正在拖拽时触发该事件
dragend: 用户结束拖拽时触发该事件
以上3个事件的控制对象为被拖拽的元素 (整个过程我们可以称之为拖拽区)
dragenter: 当被拖拽的元素对象进入其容器范围内时触发该事件
dragover: 当被拖拽的元素对象在其容器范围内拖拽时触发该事件
dragleave: 当被拖拽的元素对象离开其容器范围内触发该事件
drop: 在一个拖拽过程中,鼠标释放触发该事件
以上4个事件的控制对象为被拖追元素的目的容器(整个过程我们可以称之为投放区)
实例1(将一个容器拖放到另一个容器中)
独秀不爱秀
* {
padding: 0;
margin: 0;
}
#one {
width: 200px;
height: 200px;
border: 1px solid rebeccapurple;
}
#two {
width: 100px;
height: 100px;
background-color: red;
cursor: pointer;
}
window.onload = function () {
function $(id) {
return document.getelementbyid(id);
}
// 鼠标拖拽事件(注意控制对象为被拖拽的元素)
// dragstart: 用户开始拖拽时触发
$('two').addeventlistener('dragstart', function (e) {
// $('one').innerhtml = '开始拖拽';
});
// drag: 用户正在拖拽时触发
$('two').addeventlistener('drag', function (e) {
// $('one').innerhtml = '移动当中';
});
// dragend:用户结束拖拽时触发
$('two').addeventlistener('dragend', function (e) {
// $('one').innerhtml = '移动结束';
});
// 投放过程事件(注意控制对象为拖拽元素的目的地元素)
// dragenter: 当被拖拽的元素对象进入其范围内时触发
$('one').addeventlistener('dragenter', function (e) {
// $('one').innerhtml = '进入';
e.preventdefault(); // 阻止默认事件
});
// dragover: 当被拖拽的元素对象在该容器范围内拖拽时触发
$('one').addeventlistener('dragover', function (e) {
// $('one').innerhtml += '我就在里面';
e.preventdefault(); // 阻止默认事件(拖动的默认事件为在新窗口中打开)
});
// dragleave: 当被拖拽的元素对象离开其容器范围内触发
$('one').addeventlistener('dragleave', function (e) {
// $('one').innerhtml += '离开';
e.preventdefault(); // 阻止默认事件
});
// 投放事件(注意控制对象为拖拽元素的目的地元素)
// drop: 在一个拖动过程中,鼠标释放触发
$('one').addeventlistener('drop', function () {
$('one').appendchild($('two'));
});
}
实例2(文件拖拽上传)
前端代码:
独秀不爱秀
* {
margin: 0;
padding: 0;
}
#box {
width: 200px;
height: 200px;
border: 2px dashed #ccc;
}
var box = document.getelementbyid('box');
box.addeventlistener('dragenter', function (e) {
e.preventdefault();
});
box.addeventlistener('dragover', function (e) {
box.innerhtml = '已有东西进入,请松开';
e.preventdefault();
});
box.addeventlistener('dragleave', function (e) {
box.innerhtml = '赶紧回来';
e.preventdefault();
});
box.addeventlistener('drop', function (e) {
box.innerhtml = '已经松开';
// console.log(e.datatransfer.files[0]);
// lastmodified: 1561646705661
// lastmodifieddate: thu jun 27 2019 22: 45: 05 gmt + 0800(中国标准时间) { }
// name: "个人简历.pdf"
// size: 196022
// type: "application/pdf"
var file = e.datatransfer.files[0];
var fd = new formdata();
fd.append('pic', file);
var xhr = new xmlhttprequest();
xhr.open('post', '3-3.php');
xhr.send(fd);
xhr.addeventlistener('readystatechange', function () {
if (this.readystate === 4) {
// console.log(1111);
// console.log(this.responsetext);
box.innerhtml += this.responsetext;
}
});
e.preventdefault();
});
后端代码(php实现):
if (isset($_files)) {
$orgin = $_files['pic']['tmp_name'];
$target = $_files['pic']['name'];
$moved = move_uploaded_file($orgin, './' . $target);
if (!$moved) {
echo '上传失败';
}
echo ', 且上传成功';
}
当我们将某一文件(这里我用一张图片)拖f放到这个容器中后,这个图片就到了这个指定得文件夹中。
html跟随鼠标事件,HTML5深入学习之鼠标跟随,拖拽事件相关推荐
- 弹出框的鼠标拖拽事件
几个与定位有关的概念: js: clientX/clientY属性:获得事件发生时鼠标指针在视口中的水平和垂直坐标. screenX/screenY属性:获取鼠标事件发生时鼠标光标相对于整个电脑屏幕的 ...
- JavaFX鼠标拖拽事件
一.节点原拖拽事件 //鼠标拖拽进入node node.setOnMouseDragEntered(event->{//do something });//鼠标拖拽退出node node.set ...
- [html] HTML5拖拽事件的顺序是什么?
[html] HTML5拖拽事件的顺序是什么? ondragstart :源对象开始被拖动 ondrag:源对象被拖动过程中 ondragend:源对象被拖动结束ondragenter:源对象拖动着进 ...
- JavaScript学习第十六天(键盘事件、表单事件、拖拽事件、框架事件、媒体事件)
文章目录 键盘事件 表单事件 剪贴板事件 拖拽事件 打印事件 框架事件 媒体事件 总结 键盘事件 onkeydown 键盘按下事件,当有按键按下时触发 onkeyup 键盘松开事件,当有按键被松开时触 ...
- QT学习:QDropEvent拖拽事件
QT学习:QDropEvent拖拽事件 步骤 实现 使用QT实现一个如下的拖拽.拖放动作,只需要三步.主要是使用dropEvent和dragEnterEvent事件处理即可以. 步骤 1.setAcc ...
- 【JavaScript 进阶之旅 DOM篇 第九章】鼠标行为、pageX|Y封装、拖拽事件封装
文章目录 一.鼠标行为 1.clientX/Y 2.pageX/Y 3.screenX/Y 4.offsetX/Y 5.layerX/Y(不推荐使用) 6.x/y(不推荐使用) 二.pageX|Y封装 ...
- vuejs 原生JS 拖拽事件案例
原生JS or Vue 事件案例合集(详细) 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 Section 1 单个或多个鼠标拖拽事件的理解 提示:写完文章后,目录可以自动生成,如 ...
- 理解事件捕获。在限制范围内拖拽div+吸附+事件捕获
一.实现的效果是在限制范围内拖拽div+吸附+事件捕获. 这里需要理解的是事件捕获,这个事件捕获也是为了兼容div在拖拽过程中,文本不被选中这个问题. 如此良辰美景,拖拽也可以很洒脱哈.先看看图, 二 ...
- 中如何使用echart_jQueryEasyUI中的拖拽事件如何使用
jQueryEasyUI中的拖拽事件通过给它设置代理元素使其拖拽.可设置拖动元素相对于x.y轴拖动,可设置拖拽何时停止等效果 jQuery中的easyui是一个非常好用的插件,它虽然使用简单方便,但是 ...
- UGUI事件之Drag拖拽事件
UI事件之Drag拖拽事件 ======================================================== 2.UGUI 事件命名空间 当我们需要使用 UGUI 中的 ...
最新文章
- 转载:sql2005 管道的另一端上无任何进程解决方法
- Spring快速入门及深入
- 三十、Pyspider爬虫框架总结,爬取Scrapy文档
- CVE-2021-3129:Laravel远程代码漏洞复现分析
- iPhone 12 mini续航尿崩:玩游戏两小时就歇菜
- thymeleaf参考手册
- 摆脱学校WiFi的设备数限制——无线桥接
- 微信小程序ios地图标记点无法点击第二次 markertap
- #Linux#进程间通信# 管道(pipe)-标准流管道pipe
- DigitalPersona 指纹仪的使用
- BugKu-图穷匕见
- 米哈游人工桌面YOYO鹿鸣
- 陕西广电 HGU B2 光猫获取超级密码 改桥接模式 提升网速
- 苹果笔记本设置MAC地址和ip地址
- 前端使用lottie-web,使用AE到处的JSON动画贴心教程
- 解决ActiveX组件及Office程序等在Chrome、Edge新内核、360系列、FireFox、IE、Opera等桌面浏览器各版本中的嵌入使用问题
- 2019华为软件精英挑战赛
- 深度学习之GPU环境配置
- 张fool语录 (某高中老师,学生上课的时候记录的),蛮搞
- 月薪2w+的测试,到底强在哪里?