diff --git a/src/lib/ImageGallery.svelte b/src/lib/ImageGallery.svelte
index e90180f..57a4753 100644
--- a/src/lib/ImageGallery.svelte
+++ b/src/lib/ImageGallery.svelte
@@ -392,45 +392,90 @@
>
{#if thumbnailPosition === 'bottom' || thumbnailPosition === 'right'}
- slideLeft()}
- on:slideright={() => slideRight()}
- on:slidejump={(event) => {
- slideToIndex(event.detail);
- }}
- on:playtoggle={togglePlay}
- on:fullscreentoggle={toggleFullscreen}
- on:lazyload={onLazyLoad}
- on:imageload={handleImageLoad}
- on:imageerror={handleImageError}
- />
+ {#if $$slots.render}
+ slideLeft()}
+ on:slideright={() => slideRight()}
+ on:slidejump={(event) => {
+ slideToIndex(event.detail);
+ }}
+ on:playtoggle={togglePlay}
+ on:fullscreentoggle={toggleFullscreen}
+ on:lazyload={onLazyLoad}
+ on:imageload={handleImageLoad}
+ on:imageerror={handleImageError}
+ let:item
+ >
+
+
+ {:else}
+ slideLeft()}
+ on:slideright={() => slideRight()}
+ on:slidejump={(event) => {
+ slideToIndex(event.detail);
+ }}
+ on:playtoggle={togglePlay}
+ on:fullscreentoggle={toggleFullscreen}
+ on:lazyload={onLazyLoad}
+ on:imageload={handleImageLoad}
+ on:imageerror={handleImageError}
+ />
+ {/if}
{/if}
{#if showThumbnails}
{/if}
{#if thumbnailPosition === 'top' || thumbnailPosition === 'left'}
- slideLeft()}
- on:slideright={() => slideRight()}
- on:slidejump={(event) => {
- slideToIndex(event.detail);
- }}
- on:playtoggle={togglePlay}
- on:fullscreentoggle={toggleFullscreen}
- on:lazyload={onLazyLoad}
- on:imageload={handleImageLoad}
- on:imageerror={handleImageError}
- />
+ {#if $$slots.render}
+ slideLeft()}
+ on:slideright={() => slideRight()}
+ on:slidejump={(event) => {
+ slideToIndex(event.detail);
+ }}
+ on:playtoggle={togglePlay}
+ on:fullscreentoggle={toggleFullscreen}
+ on:lazyload={onLazyLoad}
+ on:imageload={handleImageLoad}
+ on:imageerror={handleImageError}
+ let:item
+ >
+
+
+ {:else}
+ slideLeft()}
+ on:slideright={() => slideRight()}
+ on:slidejump={(event) => {
+ slideToIndex(event.detail);
+ }}
+ on:playtoggle={togglePlay}
+ on:fullscreentoggle={toggleFullscreen}
+ on:lazyload={onLazyLoad}
+ on:imageload={handleImageLoad}
+ on:imageerror={handleImageError}
+ />
+ {/if}
{/if}
diff --git a/src/lib/Slide.svelte b/src/lib/Slide.svelte
index 0371e37..f926d76 100644
--- a/src/lib/Slide.svelte
+++ b/src/lib/Slide.svelte
@@ -39,21 +39,23 @@
role="button"
>
{#if showItem}
-
+
+
+
{:else}
{/if}
diff --git a/src/lib/SlideWrapper.svelte b/src/lib/SlideWrapper.svelte
index fad6721..2b0bdf3 100644
--- a/src/lib/SlideWrapper.svelte
+++ b/src/lib/SlideWrapper.svelte
@@ -172,6 +172,54 @@
>
{#each items as item, index}
+ {#if $$slots.render}
+ dispatch('imageload', { index, event })}
+ on:imageerror={(event) => dispatch('imageerror', { index, event })}
+ >
+
+
+ {:else}
+ dispatch('imageload', { index, event })}
+ on:imageerror={(event) => dispatch('imageerror', { index, event })}
+ />
+ {/if}
+ {/each}
+
+
+ {:else}
+
+ {#each items as item, index}
+ {#if $$slots.render}
+ dispatch('imageload', { index, event })}
+ on:imageerror={(event) => dispatch('imageerror', { index, event })}
+ >
+
+
+ {:else}
dispatch('imageload', { index, event })}
on:imageerror={(event) => dispatch('imageerror', { index, event })}
/>
- {/each}
-
-
- {:else}
-
- {#each items as item, index}
- dispatch('imageload', { index, event })}
- on:imageerror={(event) => dispatch('imageerror', { index, event })}
- />
+ {/if}
{/each}
{/if}
diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte
index 33ca8e4..580d5dc 100644
--- a/src/routes/+page.svelte
+++ b/src/routes/+page.svelte
@@ -2,6 +2,7 @@
import './+page.css';
import ImageGallery from '$lib/ImageGallery.svelte';
import type { Position, TItem } from '$lib/types';
+ import Item from '$lib/Item.svelte';
let startIndex = 0;
// TODO Once the ImageGallery supports rendering of custom items, we can showcase videos
@@ -24,8 +25,9 @@
let useWindowKeyDown = true;
let disableSwipe = false;
let disableThumbnailSwipe = false;
+ let useCustomRender = true;
- const PREFIX_URL = 'https://raw.githubusercontent.com/react2svelte/image-gallery/main/static/';
+ const PREFIX_URL = '/';
function _getStaticImages() {
let images: TItem[] = [];
@@ -42,30 +44,95 @@
}
const images = _getStaticImages();
+
+ let rotationDegree = 0;
+ let rotationDirectionIncreasing = true;
+
+ setInterval(() => {
+ if (rotationDegree >= 6) {
+ rotationDirectionIncreasing = false;
+ } else if (rotationDegree <= -6) {
+ rotationDirectionIncreasing = true;
+ }
+ if (rotationDirectionIncreasing) {
+ rotationDegree += 1;
+ } else {
+ rotationDegree -= 1;
+ }
+ }, 300);
-
+ {#if useCustomRender}
+
+
+
+ {:else}
+
+ {/if}