H5唤起手机相机
JavaScript 2020-07-19 4161 0
11:05:53
不知不觉,已经有两月有余没有更新文章,今天来除个草。
如题所说,H5唤起相机是怎么回事呢?在input标签
中,我们可以通过改变其属性值达到唤起系统相机的的功能,然后可以通过监听input的change事件拿到拍照的回调,这样我们就可以实现一个H5唤起相机拍照并上传的功能。
具体代码如下:
Html
- <div class="content">
- <div class="tips">移动端的H5页面唤起相机拍照,并显示。</div>
- <input type="file" style="display:none" accept="image/*" id="uploadPhoto" capture="camera"/>
- <div class="bottom_click">
- <button onclick="uploadImg()">拍照</button>
- <p>拍摄的图片将显示在下方:</p>
- </div>
- </div>
- <div class="result">
- <img id="photo_show" />
- </div>
Css
- .content{
- width: 80%;
- margin: 20px auto;
- line-height: 20px;
- color: #fc9153;
- font-size: 14px;
- }
- #photo_show{
- max-width: 300px;
- max-height: 400px;
- }
- .tips {
- line-height: 20px;
- color: #fc9153;
- }
- button{
- border: none;
- color: #fff;
- background: #fc9153;
- text-align: center;
- width: 50px;
- display: block;
- border-radius: 5px;
- }
- .bottom_click{
- margin: 20px 0;
- }
- .result{
- width: 100%;
- text-align: center;
- }
JavaScript
- function uploadImg(){
- let photoBtn = document.getElementById("uploadPhoto");
- let photo_show = document.getElementById("photo_show");
- photoBtn.click();
- //监听change事件
- photoBtn.onchange=function(e){
- const file = e.target.files[0]; // 这是上传的文件流数据
- console.log('文件流数据....', file)
- if (file.size > 20 * 1024 * 1024) {
- alert('图片大于20M,请重新上传');
- return;
- }
- const reader = new FileReader()
- reader.readAsDataURL(file)
- reader.onload = (e) => {
- // e.target.result 这是base64格式的文件
- photo_show.src = e.target.result; //这是base64格式的文件
- }
- }
- }
效果图
戳我体验(手机打开才有效果哦~)
完
发表评论