最近在写前端时遇到这样的需求:通过选定本地图片来更改前端用户头像,就当前所了解的js或者jQuery调用,似乎没有可以直接更带组件背景的调用,进过网上查找后获得如下解决办法。
(暂时只能修改Img组件的背景,还未尝试其他组件)
<html>
<head>
<title>Img组件动态修改</title>
</head>
<body>
<img id='test' style='width:300px; height:200px; background-size:100% 100%; ' src='' onclick='file.click()' />
<input id='file' type='file' style='display:none' accept='.png, .jpg' onchange='changeImg(this)'/>
<script >
function changeImg(t){
previewImage(document.getElementById('test'), t);
}
function previewImage(obj, file){
var reader = new FileReader();
reader.onload = function(evt){//这个调用应该是异步进行的
obj.src = evt.target.result; //似乎是读取目标文件的二进制数据,然后存入指定img的内存区域,应该是吧...
};
reader.readAsDataURL(file.files[0]);
}
</script>
</body>
</html>