• input file 样式以及获取选择文件方法集合


    样式一(http://www.cnblogs.com/jason-liu-blogs/archive/2013/06/13/3133377.html

    <style>
    a{display:inline-block; 100px; height:40px; background:red; position:relative; overflow:hidden;}
    a:hover{background:green;}
    input{position:absolute; right:0; top:0; font-size:100px; opacity:0; filter:alpha(opacity=0);}
    </style>
        
    <a href="#">
        <input type="file" value="浏览" />
    </a>

    外观一

    样式二(http://www.jb51.net/css/69093.html

    CSS 代码
    *{margin:0;padding:0;} 
    a{text-decoration:none;} 
    .btn_addPic{ 
    display: block; 
    position: relative; 
     140px; 
    height: 39px; 
    overflow: hidden; 
    border: 1px solid #EBEBEB; 
    background: none repeat scroll 0 0 #F3F3F3; 
    color: #999999; 
    cursor: pointer; 
    text-align: center; 
    } 
    .btn_addPic span{display: block;line-height: 39px;} 
    .btn_addPic em { 
    background:url(http://p7.qhimg.com/t014ce592c1a0b2d489.png) 0 0; 
    display: inline-block; 
     18px; 
    height: 18px; 
    overflow: hidden; 
    margin: 10px 5px 10px 0; 
    line-height: 20em; 
    vertical-align: middle; 
    } 
    .btn_addPic:hover em{background-position:-19px 0;} 
    .filePrew { 
    display: block; 
    position: absolute; 
    top: 0; 
    left: 0; 
     140px; 
    height: 39px; 
    font-size: 100px; /* 增大不同浏览器的可点击区域 */ 
    opacity: 0; /* 实现的关键点 */ 
    filter:alpha(opacity=0);/* 兼容IE */ 
    } 
    
    HTML代码
    <A class=btn_addPic href="javascript:void(0);"><SPAN><EM>+</EM>添加图片</SPAN> <INPUT class=filePrew title=支持jpg、jpeg、gif、png格式,文件小于5M tabIndex=3 type=file size=3 name=pic></A>

    外观二

    样式三(http://www.360doc.com/content/12/1229/13/11395036_256962485.shtml

    HTml 代码
    
      <div class="fileInputContainer">
      <input type="file" name="fileData" id="imgFlie"  onchange="showPicture(this.files)" multiple />
      </div>
    
    CSS代码
    .fileInputContainer {
          height: 80px;
          background: url(http://wx115.cnpsim.com/Content/images/imagefile.png);
          background-size: contain;
          position: relative;
           80px;
          text-align:center;
      }
      #imgFlie {
          height: 80px;
          overflow: hidden;
          font-size: 100px;
          position: absolute;
          right: 0;
          top: 0;
          opacity: 0;
          filter: alpha(opacity=0);
          cursor: pointer;
      }

    样式三

     *可以通过JQ注册change事件以便获取选择的文件或图片,在chang事件里面通过 this.files获取选择的文件等,也可像样式三代码中一样通过JS中onchange事件获取,

     *有时text-align:center,并不能使其居中时可以尝试用margin-left:30%;margin-right:30%;

     
    $("#imgFlie").live("change", function () {
        var data = this.files;
        //var data = document.getElementById('imgFlie').files;js获取
        $(this).clone().replaceAll(file = this); //每次选中都保存旧元素,并使用新的控件替换(解决紧邻的二次不能选择同一图片)
        $.each(data, function (key, value) {
            var objUrl = getObjectURL(value);
            if (objUrl) {
                var img = new Image();
                img.src = objUrl;
                img.onload = function () {
                    var size = img.width + 'x' + img.height;
                    $("#ImageDiv").append('<figure><div>' +
                    '<a  href=' +
                    '"' + objUrl + '"' +
                    'data-size=' +
                    '"' + size + '"' +
                    '>' +
                    '<img class="WorkOrderimageNew" style="height:90px;90px;" src=' +
                        '"' + img.src + '"' +
                    '>' +
                    '</a>' +
                    '</div>' +
                    '<figcaption style="display:none;">' +
                    '图片' +
                    //'<button style="float:right;" onclick=DeleteImage("' + value + '"' +
                    //',' +
                    //'"' + value + '")>删除图片(手机端需要注册触摸事件)</button> ' +
                    '</figcaption></figure>'
                    )
                };
            }
        });
    });
    function showPicture(files) {
      //  var files = document.getElementById('imgFlie').files;
        for (var i = 0; i < files.length; i++) {
            var file = files[i];
            if (!/image/w+/.test(file.type)) {
                return false;
            }
            var url = getObjectURL(file)
            if (url) { 
                var img = new Image();
                img.src = url;
                img.onload = function () {
                    var size = img.width + 'x' + img.height;
                    $("#ImageDiv").append('<figure><div>' +
                    '<a  href=' +
                    '"' + img.src + '"' +
                    'data-size=' +
                    '"' + size + '"' +
                    '>' +
                    '<img class="WorkOrderimageNew" style="height:40px;40px;" src=' +
                        '"' + img.src + '"' +
                    '>' +
                    '</a>' +
                    '</div>' +
                    '<figcaption style="display:none;">' +
                    '这是的图片名' +
                     '"' + file.name + '"' +
                    '</figcaption></figure>'
                    )
                }
            }
        }
    }
  • 相关阅读:
    .net学习之母版页执行顺序、jsonp跨域请求原理、IsPostBack原理、服务器端控件按钮Button点击时的过程、缓存、IHttpModule 过滤器
    ASP.NET MVC 伪静态的实现
    关于 redis、memcache、mongoDB 的对比(转载)
    在多台服务器上简单实现Redis的数据主从复制(3)(转载)
    Redis处理文件日志并发(2)
    Redis简介、与memcached比较、存储方式、应用场景、生产经验教训、安全设置、key的建议、安装和常用数据类型介绍、ServiceStack.Redis使用(1)
    重温WCF之群聊天程序(十)
    重温WCF之会话Session(九)
    select count(*)和select count(1)哪个性能高
    全局压缩http响应头
  • 原文地址:https://www.cnblogs.com/wangboke/p/5842512.html
Copyright © 2020-2023  润新知