计科知识库
  • 源界面
  • 博客圈
  • 专题
  • 博友
  • 登录
  • 注册
源界面 源界面 1个月前

选择图片后显示缩略图(自动生成缩略图)

js

ittTSrMQ
选择图片后显示缩略图(自动生成缩略图)

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>显示选择图片的缩略图</title>
  6. <style>
  7. #dropbox {
  8. width: 200px;
  9. height: 70px;
  10. line-height: 70px;
  11. text-align: center;
  12. border: 2px dashed #999;
  13. border-radius: 5px;
  14. background: #fbfbfb;
  15. color: #666;
  16. }
  17. #preview>img {
  18. height: 80px;
  19. margin: 7px;
  20. border: 1px solid #666;
  21. border-radius: 4px;
  22. box-shadow: 3px 3px 3px #bbb;
  23. }
  24. #outbox{
  25. display: inline-block;
  26. position: relative;
  27. overflow: hidden;
  28. }
  29. #imgUpload{
  30. position: absolute;
  31. left: 0px;
  32. font-size: 60px;
  33. opacity: 0;
  34. }
  35. </style>
  36. </head>
  37. <body>
  38. <div id="outbox">
  39. <div id="dropbox">
  40. <input id="imgUpload" type="file" multiple>
  41. <span>点击或将单个/多个图片拖放到此处</span>
  42. </div>
  43. </div>
  44. <div id="preview"></div>
  45. <script>
  46. var dropbox, imgUpload;
  47. dropbox = document.getElementById("dropbox");
  48. dropbox.addEventListener("dragenter", dragenter, false);
  49. dropbox.addEventListener("dragover", dragover, false);
  50. dropbox.addEventListener("dragleave", dragleave, false);
  51. dropbox.addEventListener("drop", drop, false);
  52. imgUpload = document.getElementById("imgUpload");
  53. imgUpload.addEventListener("change", readFile, false)
  54. // 目标进入drop区域
  55. function dragenter(e) {
  56. e.stopPropagation();
  57. e.preventDefault();
  58. dropbox.style.background = '#666'
  59. }
  60. // 目标位于drop区域上方
  61. function dragover(e) {
  62. e.stopPropagation();
  63. e.preventDefault();
  64. }
  65. // 目标离开drop区域
  66. function dragleave(e) {
  67. e.stopPropagation();
  68. e.preventDefault();
  69. dropbox.style.background = '#fbfbfb';
  70. }
  71. // 目标在drop区域被释放/放置(松开鼠标)
  72. function drop(e) {
  73. e.stopPropagation();
  74. e.preventDefault();
  75. dropbox.style.background = '#fbfbfb';
  76. var dt = e.dataTransfer;
  77. var files = dt.files;
  78. handleFiles(files);
  79. }
  80. // 点击上传按钮后的方法
  81. function readFile() {
  82. handleFiles(this.files);
  83. }
  84. // 显示缩略图的方法
  85. function handleFiles(files) {
  86. for (var i = 0; i < files.length; i++) {
  87. var file = files[i];
  88. var imageType = /^image\//;
  89. // 自动过滤非图片文件
  90. if (!imageType.test(file.type)) {
  91. continue;
  92. }
  93. // 建立img对象并加入到页面中
  94. var img = document.createElement("img");
  95. preview.appendChild(img);
  96. var reader = new FileReader();
  97. reader.readAsDataURL(file);
  98. reader.onload = (function (aImg) {
  99. return function (e) {
  100. aImg.src = e.target.result;
  101. };
  102. })(img);
  103. }
  104. }
  105. </script>
  106. </body>
  107. </html>

访问演示地址

  • © 2025 源界面 源码为笔,博客为路,写就数字未来
  • 建议
  • 图片压缩
  • | 鄂ICP备14016484号-6

    鄂公网安备 42068402000140