前端css+js实现自定义上传文件/图片按钮,并显示已选文件/图片名称

46 篇文章 0 订阅
8 篇文章 0 订阅

默认的文件上传按钮样式(如下图)确实不太好看,想展现得美观一些就自己写一个样式吧。
下面我们做一个自定义的上传按钮效果,上传后把已上传文件/图片名称也显示出来。
实现思路也很简单:
1、先把原元素隐藏起来,自己写一个好看的按钮
2、点击自定义按钮时触发原元素点击事件达到选择文件上传的效果(等同于触发了原input元素 )

在这里插入图片描述
最终效果如下图:
在这里插入图片描述
一、html部分代码:

<div>
      <input type="file" class="upload-btn">
      <span type="text" class="file-input-trigger">选择文件</span>
      <p class="file-name"></p>
</div>

以上html代码片段中input就是默认的上传按钮,span是我们自定义的按钮,p用于显示上传后的文件名称。

2、然后通过css样式把原input标签隐藏起来,再根据个人喜欢加上一些样式美化一下自定义的按钮,css样式如下:

/*隐藏原input*/
.upload-btn {
	display: none;
}
/*美化自定义按钮*/
.file-input-trigger {
    padding: 2px 5px;
    border-radius: 5px;
    border: 1px solid #3888C7;
    background-color: #3888C7;
    outline: none;
    color: #fff;
    cursor: pointer;
}

3、js部分的代码:点击span元素 触发input元素的点击事件,并将已选文件名称显示到p元素。

<!-- 先引入jquery -->
<script src="https://cdn.jsdelivr.net/npm/jquery@2.1.3/dist/jquery.min.js"></script>
<script>
$(function() {
	// 点击自定义的span标签触发input标签的点击事件
    $('.file-input-trigger').on('click', function() {
        $('.upload-btn').trigger('click')
    })
    // 文件改变时 将文件名称显示到p元素中
    $('.upload-btn').on('change', function(event) {
        var fileName = '已选文件:' + event.target.files[0].name
        $('.file-name').text(fileName)
    })
})
</script>

最终上传效果如下:
在这里插入图片描述
简单的自定义上传文件按钮就实现啦✌️。

  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

遇见小美好

每一笔打赏都见证了你的努力💪

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值