Reputation: 55
I want to add swiper slider to svelte, my question is:
<script> import from "styles.css" ... </script>
Because import to head is tricky (Import css in node_modules to svelte)
swiper.js
file to svelte, and it almost works. It works on touch (mouse), but buttons don't (.swiper-button-next
.swiper-button-prev
). Do exist special import .js files rules ?Code example: https://codesandbox.io/s/musing-leavitt-ygstx?file=/App.svelte:224-243
Upvotes: 4
Views: 2129
Reputation: 14844
.js
module:<script>
import { onMount } from "svelte";
import "swiper/swiper-bundle.min.css"; // <- just import your css
...
</script>
By default Swiper exports only core version without additional modules (like Navigation, Pagination, etc.). So you need to import and configure them too:
// core version + navigation, pagination modules:
import Swiper, { Navigation, Pagination } from 'swiper';
// configure Swiper to use modules
Swiper.use([Navigation, Pagination]);
// init Swiper:
const swiper = new Swiper(...);
So finally, your component initialisation can be done like that:
<script>
import { onMount } from "svelte";
import "swiper/swiper-bundle.min.css";
import Swiper, { Navigation } from "swiper";
Swiper.use([Navigation]);
onMount(() => {
const swiper = new Swiper(".swiper-container", {
navigation: {
nextEl: ".swiper-button-next",
prevEl: ".swiper-button-prev"
}
});
});
</script>
Here's the link for the codesandbox.
Upvotes: 4