最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

js自定義input文件上傳樣式

 更新時間:2018年10月26日 08:36:17   作者:huanzi-qch  
這篇文章主要為大家詳細介紹了js自定義input文件上傳樣式,具有一定的參考價值,感興趣的小伙伴們可以參考一下

文件上傳是我們經(jīng)常會用到的功能,但是原生的input樣式太丑了,能不能自定義一個input文件上傳樣式呢?

我這里寫了兩種方法,form表單提交跟ajax異步提交都沒有問題,自動上傳或者點擊上傳按鈕上傳也都沒問題

先看效果:

代碼貼出來: 

方法1

<!--
      方法1:
      div : 設(shè)置寬高、overflow:hidden;超出的部分被隱藏
      input : 設(shè)置層級z-index = 1;設(shè)置透明度opacity:0;設(shè)置相對定位position:relative;使兩個元素重疊
      i : 設(shè)置層級z-index = 0;(要比input小)設(shè)置相對定位position:relative;使兩個元素重疊
      利用div框出大小,input在i上面但透明度為0,當(dāng)我們點擊i時其實是點擊到了input但視覺上我們只看到了i
    -->
    <h3>方法1:</h3>
    <form action="upload" method="post" enctype="multipart/form-data">
      <!-- 輔助div,框出顯示內(nèi)容 -->
      <div style="width: 20px;height: 20px;overflow:hidden;">
        <!-- 實際的選擇文件input -->
        <input style="position:relative;z-index :1;opacity:0" onchange="change()" id="file" type="file"
            name="file"/>
        <!-- 可視圖標 -->
        <i class="glyphicon glyphicon-open" style="position:relative;top:-22px;z-index :0;font-size: 20px;"></i>
      </div>
      <!-- 文件名 -->
      <br/><span id="fileName"></span>
      <!-- 表單提交按鈕 -->
      <br/><input id="but_submit" type="submit" value="上傳"/>
    </form>
    <script>
      function change() {
        //回顯文件名
        $("#fileName").text($("#file").val());
      }
</script>

方法2

<!--
    方法2:
      input : 設(shè)置層級display: none; 直接隱藏
      i : onclick="document.getElementById('file2').click();" 圖標的click觸發(fā)input的click
      直接隱藏input,設(shè)置圖標的click觸發(fā)input的click,從而達到我們想要的效果
    -->
    <h3>方法2:</h3>
    <form id="uploadForm">
      <!-- 實際的選擇文件input -->
      <input style="display: none;" onchange="change2()" id="file2" type="file" name="file"/>
      <!-- 可視圖標 -->
      <i class="glyphicon glyphicon-open" style="font-size: 20px;"
        onclick="document.getElementById('file2').click();"></i>
      <!-- 文件名 -->
      <br/><span id="fileName2"></span>
    </form>
    <script>
      //自動上傳
      function change2() {
        //回顯文件名
        $("#fileName2").text($("#file2").val());
        //執(zhí)行上傳
        var form = new FormData(document.getElementById("uploadForm"));
        $.ajax({
          url: ctx + "/rack/upload",
          type: "post",
          data: form,
          processData: false,
          contentType: false,
          success: function (data) {
            console.log(data);
          },
          error: function (e) {
            console.log(e);
          }
        });
    }
</script>

controller

@PostMapping("upload")
  public ResultModel<Boolean> upload(MultipartFile file) {
    //文件名
    System.out.println(file.getOriginalFilename());
    return ResultModel.of(true);
}

樣式還是丑了一點,但這些都不重要,關(guān)鍵是掌握了方法再找個UI小姐姐來幫忙調(diào)試,就可以做出任何想要的UI效果啦!

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論

绥德县| 靖州| 清流县| 丹阳市| 阿拉尔市| 太仆寺旗| 刚察县| 于田县| 崇文区| 沈阳市| 竹溪县| 兰考县| 阳曲县| 建昌县| 胶州市| 南召县| 衡阳市| 洛宁县| 漠河县| 吉水县| 岳西县| 曲沃县| 涟水县| 交城县| 彭山县| 平安县| 额济纳旗| 若尔盖县| 黔西县| 镇江市| 浠水县| 固阳县| 合江县| 阿荣旗| 嘉善县| 雷山县| 海阳市| 仁布县| 时尚| 望城县| 如皋市|