Cuando se usa CSS para embellecer elementos de formulario, nunca ha habido una buena manera de embellecer el control de carga de archivos. http://www.quirksmode.org/dom/inputfile.html (el sitio web parece tener un error) proporciona un método para embellecer el control de carga de archivos. Inspirándome en este método, combiné mis propios proyectos para mejorar sus funciones. Después de mejoras, tiene las siguientes características:
Lo encapsulé en un complemento de jQuery. Dado que ya existe un complemento llamado jQuery.fakeFile en Internet, para distinguirlo, lo llamaré jQuery.liveFakeFile. Este artículo presentará el principio y el uso de este método.
1. Demanda
El requisito es muy simple, pero su implementación requiere ciertas habilidades, las cuales se describen brevemente a continuación:
2. Análisis
Realice el efecto de abrir el cuadro de diálogo de selección de imagen haciendo clic en el botón
Hay un cuadro de entrada delante del control de carga de texto. Inspirado por Michael McGrady ( ljzcome una vez tradujo este artículo), creamos un botón "cargar imagen", luego cambiamos la propiedad de opacidad del control de carga de archivos y la configuramos en 0. y use la propiedad de posicionamiento para que el área de clic esté encima del botón. De esta manera, cada clic del usuario parece ser un botón en el que se hace clic, pero en realidad es el control de carga de texto en sí.
Mostrar imágenes seleccionadas por el usuario
Mostrar imágenes parece muy simple, pero existen diferencias entre los navegadores. IE6 no puede mostrar imágenes correctamente e IE7 puede mostrarlas usando el filtro AlphaImageLoder. Firefox no puede mostrar imágenes normalmente, pero tiene un método para mostrar imágenes: getAsDataURL(). Otros navegadores Opera y Safari no pueden mostrar imágenes correctamente. Por lo tanto, utilizamos tecnología de rastreo de navegadores para procesar diferentes navegadores por separado y solo permitimos que los navegadores que no pueden mostrar imágenes muestren texto normalmente.
Determinar el formato de la imagen
Solo necesita pasar la verificación de expresión regular cuando se activa el evento de cambio del control de carga de archivos. Una vez que se cumplen los requisitos de formato, se mostrará la imagen o el texto del mensaje; de lo contrario, se mostrará un mensaje de error.
análisis de usabilidad
Debido a que js se usa para cambiar la apariencia del control de carga de archivos, se debe garantizar que los usuarios puedan cargar imágenes normalmente cuando js está deshabilitado. Entonces, lo que colocamos en la estructura html debería ser un control de carga de archivos normal.