js实现上传按钮并显示缩略图小轮子


Posted in Javascript onMay 04, 2020

前言

造这个小轮子的起因是因为默认提供的上传文件的按钮属实丑陋了点,而且还不能直接修改这个按钮的样式,所以就打算直接搞个小轮子方便日后需要时使用。使用原生js实现。那么直接上效果图。

实现功能:

  • 显示上传图片缩略图
  • 实现上传图片格式限制

预览效果图如下

js实现上传按钮并显示缩略图小轮子

代码实现

html代码

<html>
 <head>
 <meta charset="utf-8" />
 <title>uploalFileButton</title>
 <link rel="stylesheet" href="style.css" />
 </head>
 <body>
 <div class="file-container">
 <div class="file-box">
 <input type="file" class="file-btn" accept="image/png,image/jpeg,image/gif" id="file" />
 <text>选择文件</text>
 </div>
 <span id="showFileName"></span>
 <span id="fileerrorTip"></span>
 <div class="show_image">
 <img src="" id="file_img" />
 </div>
 </div>
 
 <script type="text/javascript" src="script.js"></script>
 </body>
</html>

JavaScript代码

(function(){
 var fileBtn = document.getElementById('file');
 var showName = document.getElementById('showFileName');
 var errorTip = document.getElementById('fileerrorTip');
 var fileImg = document.getElementById('file_img');

 fileBtn.onchange = function(){
 try{
 var fileName = this.files[0].name;
 // 限制图片上传类型
 if(fileName.indexOf("jpg") != -1 || fileName.indexOf("png") != -1) {
 errorTip.innerHTML = "";
 showName.innerHTML = fileName;
 //显示预览图片
 var file = this.files[0];
 var reader = new FileReader();
 reader.readAsDataURL(file);
 reader.onloadend = function(e) {
 fileImg.src = e.target.result;
 fileImg.style["display"] = "unset";
 };
 } else {
 showName.innerHTML = "";
 errorTip.innerHTML = "您未上传文件,或者您上传文件类型有误!";
 return false
 }
 }catch(e){}
 }
})()

CSS代码

.file-container{
 display: inline-block;
}

.file-box{
 display: inline-block;
 position: relative;
 padding:8px 25px;
 overflow: hidden;
 color:#fff;
 background-color: #4387CD;
 border-radius: 5px;
 cursor: pointer;
 vertical-align: bottom;
}

.file-btn{
 position: absolute;
 width: 100%;
 height: 100%;
 top: 0;
 left: 0;
 outline: none;
 filter:alpha(opacity=0);
 opacity: 0;
}

#showFileName, #fileerrorTip{
 vertical-align: bottom;
}

.show_image{
 width: 100px;
 padding: 5px;
 margin: 5px 0;
 border: 1px solid #ccc;
 border-radius: 5px;
}

.show_image img{
 display: none;
 width: 100px;
}

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

Javascript 相关文章推荐
理解Javascript_05_原型继承原理
Oct 13 Javascript
jquery无缝向上滚动实现代码
Mar 29 Javascript
Ajax异步提交表单数据的说明及方法实例
Jun 22 Javascript
图片翻转效果具体实现代码
Jan 09 Javascript
Bootstrap 源代码分析(未完待续)
Aug 17 Javascript
js获取元素下的第一级子元素的方法(推荐)
Mar 05 Javascript
Vue编写多地区选择组件
Aug 21 Javascript
详谈Node.js之操作文件系统
Aug 29 Javascript
Vue.js表单标签中的单选按钮、复选按钮和下拉列表的取值问题
Nov 22 Javascript
vue自定义filters过滤器
Apr 26 Javascript
js canvas实现二维码和图片合成的海报
Nov 19 Javascript
vue组件库的在线主题编辑器的实现思路
Apr 03 Javascript
js代码实现轮播图
May 04 #Javascript
原生js实现轮播图特效
May 04 #Javascript
jquery实现手风琴案例
May 04 #jQuery
autojs 蚂蚁森林能量自动拾取即给指定好友浇水的实现方法
May 03 #Javascript
解决React在安装antd之后出现的Can't resolve './locale'问题(推荐)
May 03 #Javascript
vue自定义标签和单页面多路由的实现代码
May 03 #Javascript
JavaScript函数重载操作实例浅析
May 02 #Javascript
You might like
萌王史莱姆”萌王性别尴尬!那“萌战”归女组还是男?
2018/12/17 日漫
在 PHP 中使用随机数的三个步骤
2006/10/09 PHP
php循环输出数据库内容的代码
2008/05/24 PHP
php下网站防IP攻击代码,超级实用
2010/10/24 PHP
PHP中输出转义JavaScript代码的实现代码
2011/04/22 PHP
php实现的太平洋时间和北京时间互转的自定义函数分享
2014/08/19 PHP
Javascript 各浏览器的 Javascript 效率对比
2008/01/23 Javascript
19个很有用的 JavaScript库推荐
2011/06/27 Javascript
js实现拉伸拖动iframe的具体代码
2013/08/03 Javascript
jQuery原生的动画效果
2015/07/10 Javascript
JS密码生成与强度检测完整实例(附demo源码下载)
2016/04/06 Javascript
深入浅析JavaScript的API设计原则
2016/06/14 Javascript
ionic3 懒加载
2017/08/16 Javascript
javascript+css3开发打气球小游戏完整代码
2017/11/28 Javascript
详解如何用VUE写一个多用模态框组件模版
2018/09/27 Javascript
Echarts之悬浮框中的数据排序问题
2018/11/08 Javascript
Vue利用Blob下载原生二进制数组文件
2019/09/25 Javascript
[01:03:41]DOTA2-DPC中国联赛 正赛 Dynasty vs XG BO3 第三场 2月2日
2021/03/11 DOTA
[50:38]DOTA2-DPC中国联赛 正赛 Phoenix vs CDEC BO3 第二场 3月7日
2021/03/11 DOTA
基python实现多线程网页爬虫
2015/09/06 Python
Django1.7+python 2.78+pycharm配置mysql数据库
2016/10/09 Python
解决pycharm界面不能显示中文的问题
2018/05/23 Python
基于python的Paxos算法实现
2019/07/03 Python
Python sorted排序方法如何实现
2020/03/31 Python
python 实现分组求和与分组累加求和代码
2020/05/18 Python
详解python tkinter包获取本地绝对路径(以获取图片并展示)
2020/09/04 Python
python unichr函数知识点总结
2020/12/16 Python
Python修改DBF文件指定列
2020/12/19 Python
HTML5的语法变化介绍
2013/08/13 HTML / CSS
HTML5几个设计和修改的页面范例分享
2015/09/29 HTML / CSS
BASIC HOUSE官方旗舰店:韩国著名的服装品牌
2018/09/27 全球购物
工作决心书范文
2014/03/11 职场文书
社区学习党的群众路线教育实践活动心得体会
2014/11/03 职场文书
2016年小学六一儿童节活动总结
2016/04/06 职场文书
导游词之张家口
2019/12/13 职场文书
25句企业管理语录:助你迅速打开思路,句句经典!
2020/01/14 职场文书