Me gustaría crear un degradado lineal transparente a un div. ¿Hay alguna manera de hacer eso con jquery? ¿O debería usar alguna otra biblioteca como raphaeljs? Me gustaría conseguir un efecto similar a la siguiente:Creando un degradado lineal transparente a un div
Respuesta
Por qué no mantenga la luz y un navegador compatible.
div
{
backgroud-image: url('images/gradient.png');
background-repeat: repeat-x;
background-position: top right;
}
+1 - Supongo que debería haber respondido a mi comentario;) –
¿Cómo crea esto un degradado lineal * transparente *? ¿Gradient.png no tiene que asumir de qué color se está desvaneciendo? –
El archivo PNG puede desvanecerse con transparencia, por lo que el color de fondo se desvanecerá. –
No está seguro de qué es exactamente lo que está buscando, pero echa un vistazo a Gradienter jQuery plugin.
Puede hacerlo con CSS3:
P. ej
div {
opacity: 0.5;
background: #999; /* for non-css3 browsers */
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#cccccc', endColorstr='#000000'); /* for IE */
background: -webkit-gradient(linear, left top, left bottom, from(#ccc), to(#000)); /* for webkit browsers */
background: -moz-linear-gradient(top, #ccc, #000); /* for firefox 3.6+ */
}
http://www.webdesignerwall.com/tutorials/cross-browser-css-gradient/
* "para navegadores no css3" *? La única propiedad de CSS3 utilizada aquí es 'opacity', y no hace ningún gradiente. Las otras 3 propiedades son específicas del vendedor. En mi humilde opinión, esta no es una buena solución: no es "a prueba de futuro", y no es el tipo de cosas que me gustaría ver en la web. –
creé esta usando Raphael js http://www.jsfiddle.net/pahnin/fsdnW/4/ salida si u como él
** editar **
lo creé añadiendo un rectagle con gradiente y que sea lo mismo tamaño que el div
El truco aquí es que el degradado de su ejemplo se asigna uniformemente al texto y al contenedor. Es fácil asignar un degradado transparente a la propiedad de fondo, como mucha gente ha mostrado, pero eso dejará el texto sin cambios.
Lamentablemente, no creo que haya ninguna manera directa de obtener el efecto degradado que desee sin comprometerse, dependiendo de sus necesidades, pueden ser soluciones que valen la pena. Entonces para ese fin, aquí hay dos ejemplos de cómo lograr el efecto que se muestra en su imagen de ejemplo, ambos usando el <canvas>
.
1. Fingiendo
Esto es simple, que la posición de un elemento <canvas>
por encima de su bloque de texto y dibujar en un gradiente desde totalmente transparente para el color del fondo debajo del bloque de texto . No es realmente transparente, por lo que en realidad no revela ninguna información a continuación, pero si estás tratando de desvanecer a un color sólido y predeterminado, entonces esto funciona bastante bien.
2. texto lienzo
Este ejemplo es más complicado, pero una réplica completa del efecto de transparencia se muestra en el ejemplo. Esencialmente, abandona completamente el bloque de texto HTML y simplemente dibuja todo el shabang en el <canvas>
.Sin embargo, tiene algunas desventajas:
El lienzo no parece que les gusta ajuste de texto, por lo que tendría que especificar líneas individuales.
El texto del lienzo aún puede tener implementaciones de navegador un poco turbias.
Accesibilidad & SEO, aunque podría escribir fácilmente un plugin jQuery para transformar elementos DOM normales con texto en esta solución en tiempo de ejecución.
Lo creé usando jquery y 112 divs. Un div principal para las diez líneas de div de texto cada una más transparente, y un div de fondo con 100 divs cada uno más transparente.
buena idea y realización +1 pero prácticamente un desastre xD –
Ya había un número de soluciones más prácticas, en su mayoría solo tenía curiosidad personal si se podía hacer con jquery como herramienta principal. – generalhenry
Como bArmageddon señaló, la solución aceptada no resuelve el problema - sólo se desvanece el fondo. Una solución sencilla sería utilizar: antes o: después de añadir el gradiente sobre el texto:
div {
position: relative;
}
div:before {
content: "";
position: absolute;
bottom: 0;
left: 0;
width: 100%;
height: 20px;
background: url("transparent_fade.png") repeat-x;
}
- 1. ¿Cómo hacer un degradado transparente?
- 2. Div no transparente dentro de un div transparente
- 3. Crear un degradado lineal en matriz 2D
- 4. Cepillo de degradado lineal Desvanecimiento WPF
- 5. ¿Cómo llenar un camino en Android con un degradado lineal?
- 6. CSS Crear un div transparente
- 7. Degradado lineal multicolor en WinForms
- 8. Hacer triángulo CSS3 con degradado lineal
- 9. Aplicar un degradado a CAShapeLayer
- 10. Creando un mapa de bits transparente con GDI?
- 11. Agregando un degradado a Google-Visualization ColumnChart
- 12. SVG El degradado lineal no funciona en Safari
- 13. Creando un elemento div dentro de un elemento div en javascript
- 14. Puede superponer un div transparente en una imagen
- 15. Dibujando un botón transparente
- 16. Creando una ventana transparente en C++ Win32
- 17. lineal desvanecen div, el contenido y la frontera (sólido en la parte superior a transparente en la parte inferior)
- 18. Cómo especificar el degradado lineal svg en términos de un ángulo
- 19. ¿Cómo configurar el campo de entrada html transparente en un div transparente?
- 20. ¿Cómo obtener un degradado lineal girado svg para usarlo como imagen de fondo?
- 21. ¿Creando una réplica más pequeña de un div?
- 22. ¿Se puede superponer un degradado css3 transparente sobre una imagen de fondo?
- 23. ¿Cómo poner una div en otra div con fondo transparente?
- 24. Cómo agregar un encabezado a un diseño lineal
- 25. Guardar UIView a un PNG transparente
- 26. Crear un degradado radial programáticamente
- 27. Haga un control transparente
- 28. Haz un triángulo CSS con fondo transparente en un div con imagen blanca BG?
- 29. Crear un panel transparente
- 30. Textura lineal/no lineal Asignación de un Quad distorsionado
Probablemente la solución más robusta es poner un png transparente con el gradiente bajo la div. Por supuesto, entonces el gradiente se establece verticalmente. –