前端的拖拽操作
来源:互联网 发布:c语言驱动写法 编辑:程序博客网 时间:2024/06/11 12:30
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title> <style> #target { padding: 20px; /*height: 300px;*/ border: 5px dashed #c0c0c0; color: #e0e0e0; font-size: 40px; line-height: 260px; text-align: center; -webkit-user-select: none; cursor: pointer; } /*给拖拽添加的时候提供更加人性化的样式*/ #target.actived { border-color: #888; color: #eaeaea; box-shadow: 0 0 80px #e0e0e0 inset; } #result{ font-size: 14px; color: #555; line-height: 1.5; } #result li{ border-top: 2px solid #c0c0c0; } #img2{ width: 400px; } </style></head><body><div class="container"> <div class="page-header"> <h1>Drag&Drop</h1> </div> <input type="text"> <!-- 下面的内容只是拖拽的内容--> <div class="jumbotron"> <p>你好啊,你今年几岁啊,哈哈,我的今天在哪里</p> <img src="./images/googlelogo_color_272x92dp.png" alt=""> <img src="./images/詹姆斯1.jpg" alt="" id="img2"> </div> <!-- 这个div是拖拽到的目的地,文件,图片,或者文本会存放在ul中--> <div id="target"> Drag something into here <ul id="result" class="list-group"> </ul> </div> <br></div><script> window.onload = function () { //target 所有被拖拽的内容都是拖拽到target中 var target = document.getElementById('target'); //result 拖拽结果显示的区域 var result = document.getElementById('result'); //监听拖拽事件 //drag 拖拽 //drop 松开,放下 target.addEventListener('dragenter', function () {// console.log('拖拽进入'); this.classList.add('actived'); }); target.addEventListener('dragleave', function () {// console.log("拖拽离开"); this.classList.remove('actived'); }); //如果要监听drop事件,首先需要阻止默认的拖拽事件 target.addEventListener('dragover', function (e) { e.preventDefault(); }); //监听拖拽松开的事件 target.addEventListener('drop', function (e) {// console.log('松开放下'); //判断拖拽进来的是什么内容 // 1. 文本 text // 2. 图片 src // 3. 文件 file var file = e.dataTransfer.files.length; var src = e.dataTransfer.getData('text/uri-list'); var text = e.dataTransfer.getData('text/plain'); if (file){ //拖拽来的是一个或者多个文件 var files = e.dataTransfer.files; //遍历每一个文件 for (var i = 0; i < files.length; i++){ var f = files[i]; var li = document.createElement('li'); li.innerHTML = "<h3>"+f.name+"</h3><p>"+f.size+"</p>"; result.appendChild(li); } } else if(src){ var img = document.createElement('img'); //text/url-list 获取的是图片所对应的url地址 img.src = src; var li = document.createElement('li'); li.appendChild(img); result.appendChild(li); }else if(text){ var li = document.createElement('li'); li.innerText = text; result.appendChild(li); } e.preventDefault(); }); };</script></body></html>
拖拽过程中的样子
这个是拖拽进去后ul里面的内容
阅读全文
1 0
- 前端的拖拽操作
- [前端] 简单的cookie操作
- 【前端笔记】项目中运用到的前端操作
- 前端性能优化:数组操作的优化
- Gulp在前端的常用操作实例
- 一些常用的前端基础操作
- 一些常用的前端基础操作
- 一些常用的前端基础操作
- Gulp在前端的常用操作实例
- sikuli--前端自动化操作的神器
- 关于前端的一些禁止操作
- 前端拖拽效果
- Web前端:QtWebkit操作网页的几种方法
- AS 3的前端flash部分操作(自己看)
- 前端性能优化:字符串的连接操作改进
- 前端性能优化:数组操作的优化二
- 前端性能优化:DOM操作标签对性能的影响
- jqgrid 删除操作的前端实现和后台实现
- 设计模式-行为型软件设计模式(四)
- 在Linux系统部署InfluxDB
- FZUOJ 2250 不可能弹幕结界【BFS】
- 光栅图形学算法——裁剪算法
- 设计模式-行为型软件设计模式(五)
- 前端的拖拽操作
- 设计模式-行为型软件设计模式(六)
- python创建线程
- python 闭包
- stl-map
- POJ3164_Command Network_有向图::最小树状图::朱刘算法
- xxx is not in the sudoers file.This incident will be reported.的解决方法
- Notepad++ pythonScript插件开发
- struct 和class