input file样式修改以及图片预览删除功能详细概括(推荐)

下面是详细的攻略:

input file样式修改以及图片预览删除功能详细概括

1. input file样式修改

1.1 使用label标签+input file实现input file样式修改

通过使用label标签中的for属性和input file中的id属性相互关联,可以实现点击label标签就可以调起input file选择文件的功能,从而在外观上加以美化。代码如下:

<!--HTML代码-->
<label for="file">选择文件</label>
<input type="file" id="file">
/*CSS代码*/
label {
  display: inline-block;
  border: 1px solid #ccc;
  padding: 6px 12px;
  cursor: pointer;
}
input[type="file"] {
  display: none;
}

1.2 使用插件实现input file样式修改

也可以使用第三方插件,如jQuery File Upload等来实现input file样式的修改,这些插件可以在上传文件时显示上传进度条、预览图片等功能,同时也具有比较好的兼容性。使用步骤:

  • 引入jQuery和插件文件;
  • 在HTML中添加相应的DOM结构;
  • 通过JS调用插件方法初始化上传功能。

示例代码:

<!--HTML代码-->
<div id="fileupload">
    <form method="post" action="server/php/" enctype="multipart/form-data">
        <div class="row fileupload-buttonbar">
            <div class="col-md-7">
                <span class="btn btn-success fileinput-button">
                    <i class="glyphicon glyphicon-plus"></i>
                    <span>添加文件</span>
                    <input type="file" name="files[]" multiple>
                </span>
                <button type="submit" class="btn btn-primary start">
                    <i class="glyphicon glyphicon-upload"></i>
                    <span>开始上传</span>
                </button>
                <button type="reset" class="btn btn-warning cancel">
                    <i class="glyphicon glyphicon-ban-circle"></i>
                    <span>取消上传</span>
                </button>
                <button type="button" class="btn btn-danger delete">
                    <i class="glyphicon glyphicon-trash"></i>
                    <span>删除文件</span>
                </button>
                <input type="checkbox" class="toggle">
                <span class="fileupload-process"></span>
            </div>
        </div>
        <div class="fileupload-content">
            <table class="table table-striped"><tbody class="files"></tbody></table>
            <div class="fileupload-progressbar"></div>
        </div>
    </form>
</div>

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/blueimp-file-upload/9.5.6/js/vendor/jquery.ui.widget.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/blueimp-file-upload/9.5.6/js/jquery.fileupload.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/blueimp-file-upload/9.5.6/js/jquery.fileupload-process.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/blueimp-file-upload/9.5.6/js/jquery.fileupload-image.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/blueimp-file-upload/9.5.6/js/jquery.fileupload-validate.js"></script>
//JS代码
$(function() {
    $('#fileupload').fileupload({
        dataType: 'json',
        autoUpload: true,
        done: function(e, data) {
            $.each(data.result.files, function(index, file) {
                $('<p/>').text(file.name).appendTo('#files');
            });
        },
        progressall: function(e, data) {
            var progress = parseInt(data.loaded / data.total * 100, 10);
            $('#progress .progress-bar').css('width', progress + '%');
        }
    }).prop('disabled', !$.support.fileInput).parent().addClass($.support.fileInput ? undefined : 'disabled');
});

2. 图片预览删除功能

2.1 使用FileReader API实现图片预览

通过使用FileReader API可以实现在选中图片后能够在客户端进行图片预览的功能。具体实现步骤如下:

1.监听input file的change事件;
2.通过FileReader对象读取选中图片数据;
3.将图片数据赋值给img标签的src属性进行预览。

示例代码:

<!--HTML代码-->
<input type="file" id="file">
<img id="preview">

<script>
//JS代码
document.getElementById('file').addEventListener('change', function() {
    var file = this.files[0];
    var reader = new FileReader();
    reader.onload = function(e) {
        document.getElementById('preview').setAttribute('src', e.target.result);
    }
    reader.readAsDataURL(file);
});
</script>

2.2 使用第三方插件实现图片预览删除

也可以使用第三方插件Zoomify,它可以实现图片的预览、放大、缩小、旋转等操作,并且带有删除图片的功能,使用起来也比较简单明了。使用步骤:

  • 引入Zoomify插件及其样式文件;
  • 在HTML中添加相应的DOM结构;
  • 在JS中初始化插件。

示例代码:

<!--HTML代码-->
<input type="file" id="file">
<div id="zoomify"></div>

<link rel="stylesheet" href="zoomify.css">
<script src="jquery.js"></script>
<script src="zoomify.js"></script>
//JS代码
$(document).ready(function() {
    $('#zoomify').zoomify({
        path: $('#file').val(),
        zoomIn: 'btn-plus.png',
        zoomOut: 'btn-minus.png',
        rotateLeft: 'btn-rotate-left.png',
        rotateRight: 'btn-rotate-right.png',
        deleteImage: true, 
        deleteCallback: function() {
            alert('图片删除成功!');
        }
    });
});

以上是关于input file样式修改以及图片预览删除功能的详细攻略,希望对你有所帮助!

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:input file样式修改以及图片预览删除功能详细概括(推荐) - Python技术站

(0)
上一篇 2023年6月11日
下一篇 2023年6月11日

相关文章

  • b/s开发常用javaScript技术第3/4页

    首先,我们需要了解什么是B/S架构。B/S架构是指浏览器(Browser)和服务器(Server)之间的一种应用程序结构,B/S架构下,浏览器作为客户端获取服务器上的渲染结果。在B/S架构中,JavaScript作为一种客户端脚本语言被广泛地使用。因此,开发B/S应用时常常需要使用JavaScript技术来实现各种功能。下面我们对“b/s开发常用javaSc…

    JavaScript 2023年6月10日
    00
  • 简单了解Ajax表单序列化的实现方法

    下面是“简单了解Ajax表单序列化的实现方法”的完整攻略。 一、什么是Ajax表单序列化? Ajax表单序列化是AJAX(Asynchronous JavaScript and XML,异步JavaScript和XML)技术中的一种常见用法,它可以将表单中的数据自动转换成一组用于HTTP POST请求或GET请求的字符串。这个字符串可以被传递到服务器端,用于…

    JavaScript 2023年5月19日
    00
  • JavaScript中使用Spread运算符的八种方法总结

    下面我将详细讲解“JavaScript中使用Spread运算符的八种方法总结”的完整攻略。 什么是Spread运算符 Spread运算符是ES6中新引入的一种运算符,由三个连续的点符号…组成。它可以将一个可迭代对象(如数组或者字符串)展开成单个元素,或将多个元素指定为数组的元素,具有非常强大的功能。语法如下: // 展开数组成为元素 […array]…

    JavaScript 2023年5月27日
    00
  • javascript下with 的简化代码写法

    JavaScript 中的 with 语句可以用来将一个对象作为上下文,从而可以在代码中不用重复输入该对象的属性名来访问属性值。但是,在实际应用中,使用 with 语句存在一些潜在的问题,可能会导致代码难以维护,而且会降低代码的性能。因此,推荐使用 with 语句的简化代码写法。 with 语句的基本使用 with 语句的基本语法如下: with (obje…

    JavaScript 2023年6月10日
    00
  • Javascript中的匿名函数与封装介绍

    Javascript中的匿名函数与封装介绍 Javascript中的匿名函数和封装是两个非常重要的概念。使用匿名函数可以避免全局变量污染,而封装则可以保护代码,避免不必要的干扰和修改。本文将详细讲解Javascript中的匿名函数和封装,以及如何使用它们来提高你的代码质量和安全性。 匿名函数 匿名函数是Javascript中的一种特殊函数,它没有函数名,只有…

    JavaScript 2023年5月27日
    00
  • js 数组 fill() 填充方法

    JS 数组 fill() 填充方法 简介 在 JS 中,fill() 方法可以用来填充数组的某一段区间,即将数组中的所有元素都替换为指定的值。fill() 方法接收三个参数:要填充的值、起始位置和终止位置(不包括终止位置本身)。这个方法具有可变性,即不会创建新的数组,而是直接修改原数组。 语法 arr.fill(value, start, end) valu…

    JavaScript 2023年5月27日
    00
  • 关于js中window.location.href,location.href,parent.location.href,top.location.href的用法与区别

    关于JS中window.location.href,location.href,parent.location.href,top.location.href的用法与区别 在JavaScript中,有多种获取当前窗口URL地址的方法,其中最常见的有window.location.href、location.href、parent.location.href和t…

    JavaScript 2023年6月11日
    00
  • JavaScript的级联函数用法简单示例【链式调用】

    JavaScript的级联函数用法简单示例【链式调用】 级联调用也叫做链式调用,是一种在调用同一个对象的多个方法时可以省略中间变量的写法。这种写法在JavaScript中非常常见,例如jQuery的链式调用,可以让我们在一个语句中同时执行多个方法。 基本概念 所谓级联调用,就是一连串调用同一个对象的方法。在链式调用中,每个方法都返回对象本身,使得下一个方法可…

    JavaScript 2023年5月27日
    00
合作推广
合作推广
分享本页
返回顶部