|
|
<script lang="ts"> |
|
|
import { onMount } from 'svelte'; |
|
|
|
|
|
export let imageUrls = [ |
|
|
'/assets/images/adam.jpg', |
|
|
'/assets/images/galaxy.jpg', |
|
|
'/assets/images/earth.jpg', |
|
|
'/assets/images/space.jpg' |
|
|
]; |
|
|
export let duration = 5000; |
|
|
let selectedImageIdx = 0; |
|
|
|
|
|
onMount(() => { |
|
|
setInterval(() => { |
|
|
selectedImageIdx = (selectedImageIdx + 1) % (imageUrls.length - 1); |
|
|
}, duration); |
|
|
}); |
|
|
</script> |
|
|
|
|
|
{#each imageUrls as imageUrl, idx (idx)} |
|
|
<div |
|
|
class="image w-full h-full absolute top-0 left-0 bg-cover bg-center transition-opacity duration-1000" |
|
|
style="opacity: {selectedImageIdx === idx ? 1 : 0}; background-image: url('{imageUrl}')" |
|
|
></div> |
|
|
{/each} |
|
|
|
|
|
<style> |
|
|
.image { |
|
|
position: absolute; |
|
|
top: 0; |
|
|
left: 0; |
|
|
width: 100%; |
|
|
height: 100%; |
|
|
background-size: cover; |
|
|
background-position: center; |
|
|
transition: opacity 1s ease-in-out; |
|
|
opacity: 0; |
|
|
} |
|
|
</style> |
|
|
|