Gridzy.Gallery
Biblioteka JavaScript

Najbardziej niesamowite doświadczenie fotograficzne, jakie znalazłem. W końcu ktoś rozumie, jak to zrobić DOBRZE!

Milo Persic – użytkownik biblioteki

Szybki wgląd

1-minutowy samouczek wideo

Dowiedz się tego w ciągu minuty:

Podstawowe użytkowanie

Konfiguracja

Filtry

Wygląd

Świętuj ten dzień
Pocałuj swoich bliskich
Bądź czysty wobec siebie
Nie zapomnij o zabawie
Poczuj naturę

Style podpisów

Predefiniowane style podpisów dla łatwych i szybkich rozwiązań

Najedź kursorem na obrazy, aby zobaczyć skonfigurowany styl podpisu. Baw się przyciskami i selektorami kolorów, aby skonfigurować pokazany wbudowany styl.

Tagi i filtry

Aby wyświetlać obrazy w bardziej uporządkowany sposób

Wbudowany system filtrów jest niezwykle elastyczny. Fakt, że selektory CSS są używane do filtrowania, umożliwia w rzeczywistości prawie każdy typ filtra.

Wysoka kompatybilność

Można używać z wieloma lightboxami

Połącz galerię z dowolnym lightboxem. Prawdopodobieństwo, że jest on kompatybilny, wynosi prawie 100%. Kliknij obrazy, aby zobaczyć lightbox PhotoSwipe jako przykład.

Istnieją artykuły blogowe z gotowymi fragmentami kodu:

Wysoka elastyczność

Świętuj ten dzień
Pocałuj swoich bliskich
Bądź czysty wobec siebie
Nie zapomnij o zabawie
Poczuj naturę

Utwórz niestandardowe style

Jeśli znasz CSS, możesz stylizować elementy galerii według własnego uznania.

CSS pokazanego przykładu:

/* CSS class: "gridzySkin-custom-sepia" */

@property --gridzySkin-custom-sepia--filter-sepia {
	initial-value: 1;
	inherits: true;
	syntax: "<number>";
}
@property --gridzySkin-custom-sepia--filter-contrast {
	initial-value: 1;
	inherits: true;
	syntax: "<number>";
}

.gridzySkin-custom-sepia > .gridzyItem {
	position: relative;
	overflow: unset;
	margin: -10px;
	border: 10px solid #fff;
	box-shadow: 1px 1px 5px rgba(0, 0, 0, .5);
	border-radius: 10px;
}

.gridzySkin-custom-sepia > .gridzyItem *:not(.gridzyCaption) {
	display: inline;
}

.gridzySkin-custom-sepia > .gridzyItem .gridzyCaption * {
	display: initial;
}

.gridzySkin-custom-sepia > .gridzyItem:nth-child(4n) {
	transform: rotate(-1deg);
}

.gridzySkin-custom-sepia > .gridzyItem:nth-child(4n+1) {
	transform: rotate(-.5deg);
}

.gridzySkin-custom-sepia > .gridzyItem:nth-child(4n+2) {
	transform: rotate(1deg);
}

.gridzySkin-custom-sepia > .gridzyItem:nth-child(4n+3) {
	transform: rotate(.5deg);
}

.gridzySkin-custom-sepia .gridzyImage {
	position: relative;
	vertical-align: middle;
	border-radius: 3px;

	--gridzySkin-custom-sepia--filter-sepia: 1;
	--gridzySkin-custom-sepia--filter-contrast: .7;
	filter: sepia(var(--gridzySkin-custom-sepia--filter-sepia)) contrast(var(--gridzySkin-custom-sepia--filter-contrast));
	transition: --gridzySkin-custom-sepia--filter-sepia .6s, --gridzySkin-custom-sepia--filter-contrast .6s;
}

.gridzySkin-custom-sepia > .gridzyItem:hover .gridzyImage {
	--gridzySkin-custom-sepia--filter-sepia: 0;
	--gridzySkin-custom-sepia--filter-contrast: 1;
}

.gridzySkin-custom-sepia .gridzyCaption {
	margin: 0;
	padding: .5em;
	position: absolute;
	z-index: 1;
	bottom: -.5em;
	top: auto;
	width: auto;
	max-width: calc(100% - 2em);
	height: fit-content;
	max-height: 100%;
	overflow: auto;
	box-sizing: border-box;
	background: rgba(238, 238, 238, .8);
	color: #000;
	box-shadow: 1px 1px 3px rgba(0, 0, 0, .3);
	opacity: 0;
	transition: opacity .3s;
}

.gridzySkin-custom-sepia > .gridzyItem:nth-child(3n) .gridzyCaption {
	transform: translateX(1000px) translateX(-50%) rotate(3deg);
}

.gridzySkin-custom-sepia > .gridzyItem:nth-child(3n+1) .gridzyCaption {
	transform: translateX(1000px) translateX(-50%) rotate(-3deg);
}

.gridzySkin-custom-sepia > .gridzyItem:nth-child(3n+2) .gridzyCaption {
	transform: translateX(1000px) translateX(-50%) rotate(-1deg);
}

.gridzySkin-custom-sepia > .gridzyItem:nth-child(5n) .gridzyCaption {
	left: calc(50% - 1000px);
}

.gridzySkin-custom-sepia > .gridzyItem:nth-child(5n+1) .gridzyCaption {
	left: calc(54% - 1000px);
}

.gridzySkin-custom-sepia > .gridzyItem:nth-child(5n+2) .gridzyCaption {
	left: calc(46% - 1000px);
}

.gridzySkin-custom-sepia > .gridzyItem:nth-child(5n+3) .gridzyCaption {
	left: calc(52% - 1000px);
}

.gridzySkin-custom-sepia > .gridzyItem:nth-child(5n+4) .gridzyCaption {
	left: calc(48% - 1000px);
}

.gridzySkin-custom-sepia > .gridzyItem:hover .gridzyCaption {
	opacity: 1;
}

Użyj dowolnego HTML

Możesz użyć niemal dowolnego HTML. Istnieje tylko kilka ograniczeń. Oba przykłady pokazane tutaj dają ten sam efekt wizualny.

Przykład 1:

<ul class="gridzy gridzySkinClassic">
	<li>
		<a href="https://www.example.com/">
			<img class="gridzyImage" src="https://www.example.com/image1.jpg" />
			<span class="gridzyCaption">example caption 1</span>
		</a>
	</li>
	<li>
		<a href="https://www.example.com/">
			<img class="gridzyImage" src="https://www.example.com/image2.jpg" />
			<span class="gridzyCaption">example caption 2</span>
		</a>
	</li>
	...
</ul>

Przykład 2:

<section class="gridzy gridzySkinClassic">
	<figure>
		<img class="gridzyImage" src="https://www.example.com/image1.jpg" />
		<figcaption class="gridzyCaption">example caption 1</figcaption>
	</figure>
	<figure>
		<img class="gridzyImage" src="https://www.example.com/image2.jpg" />
		<figcaption class="gridzyCaption">example caption 2</figcaption>
	</figure>
	...
</section>

Więcej przydatnych funkcji

Leniwe ładowanie

Ładuje wyświetlane obrazy szybciej

Ładuje tylko te obrazy, które są blisko widocznego obszaru. Więc większa przepustowość dla widocznych obrazów.

API

Pozwala na zrobienie o wiele więcej

Dzięki temu możesz programowo dodawać i usuwać obrazy, zmieniać opcje lub reagować na zdarzenia.

Rozszerzenia

Zapewnia rozwiązania dla indywidualnych scenariuszy

Jest to zbiór artykułów blogowych, które rozrastają się z czasem i zawierają pomocne fragmenty kodu umożliwiające łatwe rozszerzanie Gridzy.Gallery .

Użytkownik O bibliotece

Zabierajmy się do roboty!

Kliknij przycisk, aby sprawdzić plany!