js写图片预览不需要用到input
时间: 2024-09-14 22:07:16 浏览: 39
javascript实现input file上传图片预览效果
在JavaScript中实现图片预览功能而不使用`<input>`元素,通常是通过监听一个自定义的按钮点击事件或者图片本身的点击事件来实现。这可以通过纯JavaScript或者使用第三方库如jQuery来完成。以下是一个简单的示例:
### 使用纯JavaScript实现图片预览:
1. 创建一个按钮,用于触发图片预览。
2. 使用JavaScript监听该按钮的点击事件。
3. 在事件处理函数中,根据用户的操作(比如选择图片文件),通过`FileReader`对象读取图片文件,并使用`Image`对象将其显示出来。
示例代码如下:
```html
<!DOCTYPE html>
<html>
<head>
<title>图片预览示例</title>
</head>
<body>
<button id="imgButton">选择图片</button>
<img id="imgPreview" src="" alt="图片预览" style="width: 200px; display: none;">
<script>
document.getElementById('imgButton').addEventListener('click', function() {
var input = document.createElement('input');
input.type = 'file';
input.accept = 'image/*';
input.style.display = 'none';
input.onchange = function() {
var reader = new FileReader();
reader.onload = function(e) {
var img = document.getElementById('imgPreview');
img.src = e.target.result;
img.style.display = 'block';
};
reader.readAsDataURL(input.files[0]);
};
document.body.appendChild(input);
input.click();
document.body.removeChild(input);
});
</script>
</body>
</html>
```
在这个示例中,当用户点击按钮时,会创建一个隐藏的`<input>`元素来让用户选择文件。一旦文件被选择,`FileReader`对象会被用来读取图片文件,并将其转换为DataURL,然后显示在`<img>`标签中。
### 使用jQuery实现图片预览:
如果使用jQuery,步骤类似,但是可以简化DOM操作和事件处理。
```html
<!DOCTYPE html>
<html>
<head>
<title>图片预览示例</title>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
</head>
<body>
<button id="imgButton">选择图片</button>
<img id="imgPreview" src="" alt="图片预览" style="width: 200px; display: none;">
<script>
$('#imgButton').click(function() {
var input = $('<input>').attr({
type: 'file',
accept: 'image/*'
}).css('display', 'none');
$('body').append(input);
input.on('change', function() {
var reader = new FileReader();
reader.onload = function(e) {
$('#imgPreview').attr('src', e.target.result).show();
};
reader.readAsDataURL(input[0].files[0]);
});
input.click();
input.remove();
});
</script>
</body>
</html>
```
在这段代码中,同样创建了一个隐藏的`<input>`元素来让用户选择图片文件。图片预览是通过jQuery来简化DOM操作和事件绑定。
阅读全文