[关闭]
@sammffl 2016-02-19T09:23:06.000000Z 字数 1480 阅读 754

图片预览(上传服务器之前)

小技巧


来源: 前端图片预览,上传前预览,兼容IE7、8、9、10、11,Firefox,Chrome

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>图片预览</title>
  6. <style type="text/css">
  7. .image_container {
  8. width: 48px;
  9. height: 48px;
  10. position: relative;
  11. }
  12. </style>
  13. <script type="text/javascript" src="http://code.jquery.com/jquery-1.12.0.min.js"></script>
  14. <script language="javascript">
  15. $(function () {
  16. $("#file_upload").change(function () {
  17. var $file = $(this);
  18. var fileObj = $file[0];
  19. var windowURL = window.URL || window.webkitURL;
  20. var dataURL;
  21. var $img = $("#preview");
  22. if (fileObj && fileObj.files && fileObj.files[0]) {
  23. dataURL = windowURL.createObjectURL(fileObj.files[0]);
  24. $img.attr('src', dataURL);
  25. } else {
  26. dataURL = $file.val();
  27. // $img.css("filter",'progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod = scale,src="' + dataURL + '")');
  28. // var imgObj = document.getElementById("preview");
  29. // imgObj.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale,src=\"" + dataURL + "\")";
  30. // imgObj.style.width = "48px";
  31. // imgObj.style.height = "48px";
  32. var imgObj = document.getElementById("preview");
  33. // 两个坑:
  34. // 1、在设置filter属性时,元素必须已经存在在DOM树中,动态创建的Node,也需要在设置属性前加入到DOM中,先设置属性在加入,无效;
  35. // 2、src属性需要像下面的方式添加,上面的两种方式添加,无效;
  36. imgObj.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale)";
  37. imgObj.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = dataURL;
  38. }
  39. });
  40. });
  41. </script>
  42. </head>
  43. <body>
  44. <div id="demo">
  45. <input id="file_upload" type="file"/>
  46. <div class="image_container">
  47. <img id="preview" width="60" height="60">
  48. </div>
  49. </div>
  50. </body>
  51. </html>
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注