atropos v1

This commit is contained in:
valere
2024-09-03 22:00:55 +02:00
parent 9823438154
commit acb0062d51
3 changed files with 47 additions and 0 deletions

33
components/atropos.vue Normal file
View File

@@ -0,0 +1,33 @@
<template>
<div class="container mx-auto p-4">
<atropos-component ref="atropos" class="my-atropos" active-offset="40" shadow-scale="1.05">
<img src="https://files.erudi.fr/screenshit/41684f3ebccdde7352339aa0ae79bc43d50a2b79.jpg" data-atropos-offset="-5" alt="3D Image 2" />
<img src="/logo.svg" alt="3D Image" data-atropos-offset="0" class="absolute inset-0 w-full h-full object-cover" />
</atropos-component>
</div>
</template>
<script setup>
import { onMounted, ref } from 'vue';
const atropos = ref(null);
onMounted(() => {
atropos.value.addEventListener('enter', () => {
console.log('Entered');
});
atropos.value.addEventListener('leave', () => {
console.log('Left');
});
atropos.value.addEventListener('rotate', (event) => {
console.log('Rotate', event.detail);
});
});
</script>
<style scoped>
.my-atropos {
width: 320px;
height: 160px;
}
</style>

5
pages/atropos.vue Normal file
View File

@@ -0,0 +1,5 @@
<template>
<section>
<atropos></atropos>
</section>
</template>

9
plugins/atropos.ts Normal file
View File

@@ -0,0 +1,9 @@
import { defineNuxtPlugin } from '#app';
export default defineNuxtPlugin(() => {
if (process.client) {
import('atropos/element').then(({ default: AtroposComponent }) => {
customElements.define('atropos-component', AtroposComponent);
});
}
});