javascript - 显示上传的图片而不是上传按钮

标签 javascript jquery html css

我有一个“按钮”(一个类似于按钮的 anchor )。您可以在哪里上传预览的图片。

但我想做的是让上传的图片显示而不是按钮(相同大小等)。有什么好的方法吗?

$(document).ready(function() {

    function readURL(input) {

        if (input.files && input.files[0]) {
            var reader = new FileReader();

            reader.onload = function (event) {
                $('#imageChosen').attr('src', event.target.result);
            }

            reader.readAsDataURL(input.files[0]);
        }
    }

    $('#fileInput').change(function(){
        readURL(this);
    });
});
div.input {
    border-style: solid;
    border-width: 5px;
	display: inline-block;
}

#filebutton {
	width: 100px;
	height: 100px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<!DOCTYPE html>
<html>
<head>
	<title>for testing</title>

	<script src="js/jquery-3.2.1.min.js"></script>
	<script src="js/costum.js"></script>
	<link rel="stylesheet" type="text/css" href="css/costum.css">
</head>
<body>

	<div class="input">
		<label for="fileInput">
			<input type="file" id="fileInput" style="display: none;" />
			<a style="display: block;" type="button" id="filebutton">Upload</a>
			<img id="imageChosen">
		</label>	
	</div>

</body>
</html>

最佳答案

如何通过 $('div.input').css('background-image', 'url(' + event.target.result + ')') 将图像用作背景?

然后您可能希望将 background-size 设置为 covercontain

示例:

$(document).ready(function() {

  function readURL(input) {
    if (input.files && input.files[0]) {
      var reader = new FileReader();

      reader.onload = function(event) {
        $('div.input').css('background-image', 'url(' + event.target.result + ')');
      }
      reader.readAsDataURL(input.files[0]);
    }
  }

  $('#fileInput').change(function() {
    readURL(this);
  });
});
div.input {
  border-style: solid;
  border-width: 5px;
  display: inline-block;
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}

#filebutton {
  width: 100px;
  height: 100px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="input">
  <label for="fileInput">
    <input type="file" id="fileInput" style="display: none;" />
    <a style="display: block;" type="button" id="filebutton">Upload</a>
  </label>
</div>

关于javascript - 显示上传的图片而不是上传按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43437563/

相关文章:

javascript - 安全 AJAX 连接/空字符 SSL 证书攻击?

javascript - 以编程方式选择 jQuery 按钮集中的 radio 使其崩溃

javascript - 存在滚动条时,如何将元素放置在页面上最低到达 DIV 下方 40 像素处?

javascript - 谷歌图表在第一次请求时不显示,但仅在第二次请求时显示

javascript - 从单击的按钮运行外部 javascript 函数,该按钮是在 WordPress 中使用 jquery 动态创建的

javascript - JQuery 将范围值附加到 textarea 一次

javascript - 如何在 TypeScript 中编写 ES6 箭头函数?

javascript - 如何在滚动中为 div 设置动画?

javascript - 更改静态 HTML 表中 <td> 的颜色,这取决于没有 ng-Repeat 的 AngularJS 中后端数据是否为真

javascript - 获取选择器选项的 URL 并将其添加为提交按钮的链接