Chciałbym utworzyć liniowy przezroczysty gradient do elementu div. Czy jest jakiś sposób to zrobić z jquery? A może powinienem użyć innej biblioteki, takiej jak raphaeljs? Chciałbym uzyskać efekt podobny do poniższego:Tworzenie liniowego przezroczystego gradientu do elementu div
Odpowiedz
Dlaczego nie przechowywać go światło i przeglądarka kompatybilne.
div
{
backgroud-image: url('images/gradient.png');
background-repeat: repeat-x;
background-position: top right;
}
+1 - Chyba powinienem był skomentować odpowiedź;) –
W jaki sposób tworzy się gradient liniowy * przezroczysty *? Czy gradient.png nie musi zakładać, do jakiego koloru zbliża się kolor? –
Plik PNG może zanikać z przezroczystością, więc zestaw kolorów tła będzie wyblakły do koloru. –
Nie wiem, co dokładnie szukasz ale przyjrzeć Gradienter jQuery plugin.
Można to zrobić za pomocą CSS3:
E.g.
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/
* "dla przeglądarek innych niż css3" *? Jedyną używaną tutaj właściwością CSS3 jest 'opacity' i nie powoduje ona żadnego gradientu. Pozostałe 3 właściwości są specyficzne dla dostawcy. IMHO, to nie jest dobre rozwiązanie: nie jest "odporne na przyszłość" i nie jest to coś, co chciałbym zobaczyć w sieci. –
utworzonego to za pomocą Raphael js http://www.jsfiddle.net/pahnin/fsdnW/4/ kasę jeśli u jak to
edycja ** **
utworzonego przez wprowadzenie rectagle gradientu i czyni go w taki sam rozmiar jak div
Podejściem trudnym jest to, że gradient w twoim przykładzie jest równomiernie odwzorowany zarówno na tekst, jak i na pojemnik. Łatwo jest odwzorować przezroczysty gradient na właściwość tła, jak wykazało wiele osób, ale to pozostawi tekst niezmieniony.
Niestety, nie sądzę, że istnieje jakiś prosty sposób uzyskania pożądanego efektu gradientu bez kompromisów, w zależności od potrzeb, które mogą być wartościowymi rozwiązaniami. W tym celu, oto dwa przykłady, jak osiągnąć efekt pokazany na przykładowym obrazie, zarówno przy użyciu <canvas>
.
1. udaje
To jest proste, można umieścić element <canvas>
nad bloku tekstu i rysować w gradiencie od całkowicie przezroczysty do koloru tła poniżej bloku tekstu . Nie jest tak naprawdę przezroczysty, więc w rzeczywistości nie ujawnia żadnych informacji poniżej, ale jeśli próbujesz przejść do solidnego, z góry określonego koloru, to działa całkiem nieźle.
2. tekst Canvas
Ten przykład jest bardziej skomplikowany, ale w pełni replikuje przezroczysty efekt pokazany na swoim przykładzie. Zasadniczo całkowicie blokuje tekstowy blok HTML i po prostu rysuje cały shabang na <canvas>
.Ma jednak pewne wady:
Płótno nie wydaje się podoba zawijanie tekstu, więc trzeba by określić poszczególne linie.
Tekst na płótnie może mieć nieco mętne implementacje przeglądarki.
Dostępność & SEO, choć można łatwo napisać wtyczkę jQuery do przekształcania zwykłych elementów DOM z tekstem w to rozwiązanie w czasie wykonywania.
Utworzono go przy użyciu jquery i 112 div. Element nadrzędny dla dziesięciu wierszy tekstu powoduje, że każdy jest bardziej przezroczysty, a element div zawierający tło o wartości 100 div jest przezroczysty.
Przyjemny pomysł i realizacja +1 ale praktycznie desaster xD –
Było już wiele bardziej praktycznych rozwiązań, byłem głównie osobiście ciekawy, czy można to zrobić za pomocą jquery jako podstawowego narzędzia. – generalhenry
Jak bArmageddon wskazał, przyjętego rozwiązania nie rozwiązuje problemu - po prostu zanika tła. Prostym rozwiązaniem byłoby użycie: przed lub: po dodaniu gradientu nad tekstem:
div {
position: relative;
}
div:before {
content: "";
position: absolute;
bottom: 0;
left: 0;
width: 100%;
height: 20px;
background: url("transparent_fade.png") repeat-x;
}
- 1. Biały do przezroczystego gradientu z obrazem tła
- 2. Zła wydajność spadku gradientu liniowego
- 3. Kolor gradientu dla wykresu liniowego wewnątrz AchartEngine
- 4. Tworzenie przezroczystego wideo na iOS
- 5. Tworzenie przeciągalnego elementu div w macierzystym javascript
- 6. Lewy przesunięcie elementu liniowego przy użyciu jQuery
- 7. Tworzenie gradientu radialnego w Firemonkey
- 8. Jak zaimplementować wielowymiarowy algorytm liniowego gradientu stochastycznego w tensorflow?
- 9. Jak ograniczyć przenoszenie elementu div do elementu div?
- 10. Dlaczego nie mogę odwołać się do liniowego gradientu SVG zdefiniowanego w zewnętrznym pliku (serwer malowania)?
- 11. Potrzebuję ustalonego pozycjonowanego elementu div wewnątrz bezwzględnie umieszczonego elementu div
- 12. Tworzenie przezroczystego otwór wewnątrz okna tła - WPF
- 13. Stosowanie gradientu do UIImage Smoothly
- 14. Tworzenie całkowicie przezroczystego koloru w OpenCV
- 15. Tworzenie przezroczystego panelu w C# .Net
- 16. jQuery fadeIn() powoduje display: block dla elementu liniowego
- 17. Tworzenie niestandardowego elementu div o specjalnym kształcie dynamicznie
- 18. Jak dołączyć wywołanie zwrotne onclick do elementu div, ale nie do łącza wewnątrz elementu div?
- 19. Zrób migawkę elementu div
- 20. Stosowanie gradientu do CAShapeLayer
- 21. Dodawanie onclick zdarzenie do elementu div
- 22. Dołączanie obrazu d3.js do elementu div
- 23. Dołączanie strony internetowej do elementu div
- 24. Wstawianie kodu HTML do elementu div
- 25. Bootstrap wpisuje wyniki do elementu div, możliwe?
- 26. Przedłużenie elementu div div poza pojemnik
- 27. Tworzenie obrazu z DIV
- 28. coraz szerokość elementu div
- 29. Pływające elementu div
- 30. Tworzenie suwak pionowy HTML elementu
Prawdopodobnie najbardziej niezawodnym rozwiązaniem jest umieszczenie półprzezroczystego png z gradientem pod elementem div. Oczywiście wtedy gradient jest ustawiony pionowo. –