Aucune donnée d'image disponible
URL de l'image manquante
@@ -79,6 +82,16 @@ import { useReaderStore } from '../../application/store/readerStore';
});
const store = useReaderStore();
+
+ // En mode single : zoom via la propriété CSS `zoom` (affecte le layout → scrollbars naturelles)
+ // En mode infinite : zoom via transform: scale (pas d'impact layout souhaité)
+ const containerStyle = computed(() => {
+ if (store.readingMode === 'single') {
+ return { zoom: props.zoom };
+ }
+ return { transform: `scale(${props.zoom})` };
+ });
+
const imageRef = ref(null);
const scrollContainerRef = ref(null);
const naturalWidth = ref(0);
@@ -187,13 +200,27 @@ import { useReaderStore } from '../../application/store/readerStore';
});
const imageStyle = computed(() => {
- if (!maxWidth.value) return {};
+ // Mode simple : laisser CSS contraindre les deux dimensions proportionnellement
+ if (store.readingMode === 'single') {
+ return {
+ maxWidth: '100%',
+ maxHeight: '100%',
+ width: 'auto',
+ height: 'auto',
+ };
+ }
- return {
- width: `${maxWidth.value}px`,
+ // Mode scroll : fixer la largeur, hauteur libre
+ const style = {
height: 'auto',
- maxWidth: '100%'
+ maxWidth: '100%',
};
+
+ if (maxWidth.value) {
+ style.width = `${maxWidth.value}px`;
+ }
+
+ return style;
});
// Styles spéciaux pour les doubles pages
@@ -279,17 +306,15 @@ import { useReaderStore } from '../../application/store/readerStore';
diff --git a/assets/vue/app/domain/reader/presentation/components/ReaderToolbar.vue b/assets/vue/app/domain/reader/presentation/components/ReaderToolbar.vue
new file mode 100644
index 0000000..12ce03c
--- /dev/null
+++ b/assets/vue/app/domain/reader/presentation/components/ReaderToolbar.vue
@@ -0,0 +1,178 @@
+
+
+
+
+
+
+
+ {{ store.currentPage + 1 }} / {{ store.totalPages }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/vue/app/domain/reader/presentation/components/SingleModeReader.vue b/assets/vue/app/domain/reader/presentation/components/SingleModeReader.vue
index c26027e..7ac4ff4 100644
--- a/assets/vue/app/domain/reader/presentation/components/SingleModeReader.vue
+++ b/assets/vue/app/domain/reader/presentation/components/SingleModeReader.vue
@@ -5,10 +5,10 @@
@@ -24,21 +24,21 @@