基于JavaScript实现本地图片预览


Posted in Javascript onFebruary 08, 2017

本文实例为大家分享了js本地图片预览的具体代码,供大家参考,具体内容如下

<!DOCTYPE html>
<!--
<!DOCTYPE html>一定要放在第一行,除非上面都是空行

在HTML规范中,单独存在的标签是不需要使用/来自我关闭的,比如<br>,<input>,<hr>等等这样的标签都是符合语法的.
在XHTML规范中,单独存在的标签要按照XML的语法规则进行自我关闭,上面三个标签就应写成<br />,<input />,<hr />
-->
<html>
  <head>
    <meta charset="utf8">
    <style>
      input[type=radio] {
        /* 按钮与文字对齐 */
        vertical-align:middle;
      }
      input[type=file] {
        display: block;
      }
      #img {
        width: 200px;
        height: 200px;
        border: 1px solid black;
        margin-top: 10px;
      }
    </style>
  </head>
  <body>
    <input type="radio" name="previewType" value="fileReader" onChange="onPreviewTypeChange()">fileReader
    <input type="radio" name="previewType" value="createURL" onChange="onPreviewTypeChange()">createURL
    <hr>
    <input type="file" id="imgFile" onChange="imgChange()" value="test.jpg">
    <img id="img">
    <script>
      var previewTypes = document.getElementsByName("previewType");
      var imgFile = document.getElementById("imgFile");
      var img = document.getElementById("img");

      function getPreviewType() {
        for(var i=0; i<previewTypes.length; i++) {
          if(previewTypes[i].checked) {
            return previewTypes[i].value;
          }
        }
      }

      function onPreviewTypeChange() {
        imgChange(event.target.value);
      }

      function imgChange(type) {
        img.src = "";
        var files = imgFile.files;
        console.log(files);
        if(!files || files.length === 0) {
          return;
        }
        var file = files[0];
        if(!type) {
          type = getPreviewType();
          if(!type) {
            return;
          }
        }
        switch(type) {
          case "fileReader":
            var fr = new FileReader();
            fr.onload = function(progressEvent) {
              console.log(progressEvent);
              img.src = progressEvent.target.result;
            }
            fr.readAsDataURL(file);
            break;
          case "createURL":
            img.onload = function() {
              //释放一个之前通过调用 URL.createObjectURL() 创建的已经存在的 URL 对象。
              URL.revokeObjectURL(img.src);
            }
            img.src = URL.createObjectURL(file);
            break;
        }
      }
    </script>
  </body>
</html>

fileReader.readAsDataURL

基于JavaScript实现本地图片预览

URL.createObjectURL

可以看出URL实质上是以“blob:”打头的,后面跟着32位的UUID(8-4-4-4-12)的结构。

基于JavaScript实现本地图片预览

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jQuery实战之品牌展示列表效果
Apr 10 Javascript
qTip2 精致的基于jQuery提示信息插件
Feb 17 Javascript
JS简单实现元素复制示例附图
Nov 19 Javascript
JavaScript事件 &quot;事件对象&quot;的注意要点
Jan 14 Javascript
JavaScript知识点总结(十一)之js中的Object类详解
May 31 Javascript
全面解析JavaScript中“&amp;&amp;”和“||”操作符(总结篇)
Jul 18 Javascript
(模仿京东用户注册)用JQuery实现简单表单验证,初学者必看
Jan 08 jQuery
解决vue中监听input只能输入数字及英文或者其他情况的问题
Aug 30 Javascript
Vue项目报错:Uncaught SyntaxError: Unexpected token
Nov 10 Javascript
JS隐藏号码中间4位代码实例
Apr 09 Javascript
JavaScript多种滤镜算法实现代码实例
Dec 10 Javascript
Vue 路由间跳转和新开窗口的方式(query、params)
Dec 25 Javascript
js 判断登录界面的账号密码是否为空
Feb 08 #Javascript
jQuery通过改变input的type属性实现密码显示隐藏切换功能
Feb 08 #Javascript
js获取地址栏中传递的参数(两种方法)
Feb 08 #Javascript
Bootstrap模态窗口源码解析
Feb 08 #Javascript
Bootstrap路径导航与分页学习使用
Feb 08 #Javascript
Bootstrap缩略图与警告框学习使用
Feb 08 #Javascript
Bootstrap导航条学习使用(二)
Feb 08 #Javascript
You might like
建立动态的WML站点(三)
2006/10/09 PHP
php下使用SMTP发邮件的代码
2008/01/10 PHP
PHP从零开始打造自己的MVC框架之路由类实现方法分析
2019/06/03 PHP
通过jQuery打造支持汉字,拼音,英文快速定位查询的超级select插件
2010/06/18 Javascript
jquery json 实例代码
2010/12/02 Javascript
修改js Calendar日历控件 兼容IE9/谷歌/火狐
2013/01/04 Javascript
js运动框架_包括图片的淡入淡出效果
2013/05/11 Javascript
JS的Document属性和方法小结
2013/09/17 Javascript
js 实现菜单左右滚动显示示例介绍
2013/11/21 Javascript
js字符串截取函数substr substring slice使用对比
2013/11/27 Javascript
鼠标移到div,浮层显示明细,弹出层与div的上边距左边距重合(示例代码)
2013/12/14 Javascript
JavaScript实现表格点击排序的方法
2015/05/11 Javascript
js中利用tagname和id获取元素的方法
2016/01/03 Javascript
BootStrap无限级分类(无限极分类封装版)
2016/08/26 Javascript
JavaScript中的工厂函数(推荐)
2017/03/08 Javascript
vue.js 获取当前自定义属性值
2017/06/01 Javascript
php简单数据库操作类的封装
2017/06/08 Javascript
javascript+jQuery实现360开机时间显示效果
2017/11/03 jQuery
WebSocket的通信过程与实现方法详解
2018/04/29 Javascript
element表格翻页第2页从1开始编号(后端从0开始分页)
2019/12/10 Javascript
vue中解决chrome浏览器自动播放音频和MP3语音打包到线上的实现方法
2020/10/09 Javascript
Python 随机生成中文验证码的实例代码
2013/03/20 Python
python快速查找算法应用实例
2014/09/26 Python
python装饰器初探(推荐)
2016/07/21 Python
Python实现将一个大文件按段落分隔为多个小文件的简单操作方法
2017/04/17 Python
Python3实现的简单工资管理系统示例
2019/03/12 Python
python opencv 读取图片 返回图片某像素点的b,g,r值的实现方法
2019/07/03 Python
python模拟实现分发扑克牌
2020/04/22 Python
keras实现theano和tensorflow训练的模型相互转换
2020/06/19 Python
Python3爬虫里关于识别微博宫格验证码的知识点详解
2020/07/30 Python
Abbacino官网:包、钱包和女士配饰
2019/04/15 全球购物
Java中的基本数据类型所占存储空间大小固定的吗
2012/02/15 面试题
语文教育专业应届生求职信
2013/11/23 职场文书
军训的自我鉴定
2013/12/10 职场文书
2014年办公室工作总结范文
2014/11/12 职场文书
钱塘江大潮导游词
2015/02/03 职场文书