input file 模拟预览图片。

时间:2023-01-03 15:20:19

首先申明,接下来内容只是单纯的预览图片,最多选择九张,并没有和后台交互,交互的话需要自己另外写js。

本来想写一个调用摄像头的demo,意外的发现input file 在手机端打开的话,ios可以调用图库或者摄像头,而安卓系统不能调用= =||。如果有人早知道,轻喷,我才发现。。。

我对于web这一块很感兴趣,希望能和大家一起交流,一起进步!

代码很简单,当我第一次发博客的纪念。。。

效果演示:

1.这是页面布局,基本没多少= =class随手起的,不要介意,懒。。。

 <body>
<p>点击下面区域</p>
<div class="adiv">
<div class="ad1">
<input type="file" id="file" accept="image/*"/>
</div>
<div class="ad11">
</div>
</div>
</body>

2.这里就是样式。。。

          <style type="text/css">
.adiv{
position: relative;
border: 1px solid red;
width:200px;
height: 200px;
}
.adiv div{
position: absolute;
width:200px;
height: 200px;
left:;
top:;
}
#file{
opacity:;
}
.ad11{
z-index:;
background: red;
background-size: 100% 100%;
}
.ad2{
float: left;
width:200px;
height: 200px;
background: red;
}
.ad2 img{
width:100%;
height: 100%;
}
</style>

3.这里就是js。我在之前调用了jquery,这里各位如果打开的话记得自己内联文件。

$(function(){
/*点击外层div,触发被隐藏的input的点击事件*/
$(".ad11").click(function(){
if($(".ad2").length<9){
return $("#file").click();
}else{
return false;
}
})
/*当内容改变时能及时触发预览。*/
$("#file").change(function(){
readAsDataURL();
})
/*这是图片预览函数,最多上传九张,不带交互内容*/
function readAsDataURL(){
//检验是否为图像文件
var file = document.getElementById("file").files[0];
if(!/image\/\w+/.test(file.type)){
alert("请选择图片!");
return false;
}
var reader = new FileReader();
//将文件以Data URL形式读入页面
reader.readAsDataURL(file);
reader.onload=function(e){
var result=document.createElement("div")
result.className="ad2";
$("body").append(result)
//显示文件
result.innerHTML='<img src="' + this.result +'" alt="" />';
if($(".ad2").length>=9){
$(".adiv").css("display","none");
}
}
}
})

这些大概就是基本内容。我目前在就职,但对乱七八糟的东西很感兴趣。。。喜欢研究各种插件,小效果。比如input框内容实时监控,不同长度文字两端对齐,h5模拟摇一摇,判断系统或者微信。。。如果大神呲之以鼻,请直接无视。。。

如果哪有不足或者问题,欢迎指出,不胜感激。

致谢!!