本文介绍如何利用JavaScript实现本地图片文件的拖拽上传效果。通过监听拖拽事件并结合FileReader API,将拖入的图片文件转换为Data URL并设置为容器背景,从而实现无需提交表单即可在本地预览图片的功能。
JavaScript实现本地图片拖拽预览功能
实现将文件拖拽至指定区域的功能,具体操作步骤如下。
在本地上传图片场景中,若采用拖拽交互方式,视觉效果更为直观。以下直接展示相关代码实现。
完整代码示例如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style>
#dropBox{
width: 300px;
height: 300px;
border:1px solid red;
font-size: 40px;
text-align: center;
background: lightyellow;
background-repeat: no-repeat;
background-size: 100%;
}
#dropBox div{
margin:50px auto;
width: 140px;
}
</style>
</head>
<body>
<div id="dropBox">
<div>拖动你的图片到这里</div>
</div>
<script type="text/javascript">
var dropBox;
window.onload=function(){
dropBox = document.getElementById("dropBox");
// 鼠标进入放置区时
dropBox.ondragenter = ignoreDrag;
// 拖动文件的鼠标指针位置放置区之上时发生
dropBox.ondragover = ignoreDrag;
dropBox.ondrop = drop;
}
function ignoreDrag(e){
// 确保其他元素不会取得该事件
e.stopPropagation();
e.preventDefault();
}
function drop(e){
e.stopPropagation();
e.preventDefault();
// 取得拖放进来的文件
var data = e.dataTransfer;
var files = data.files;
// 将其传给真正的处理文件的函数
var file = files[0];
var reader = new FileReader();
reader.onload=function(e){
dropBox.style.backgroundImage = "url('"+e.target.result+"')";
}
reader.readAsDataURL(file);
}
</script>
</body>
</html>
以上内容为本文的全部介绍,希望能为读者的学习提供协助,同时也欢迎继续支持本站。