@@ -32,19 +32,9 @@ provideLocal(injectionRenderContext, ref(props.renderContext))
3232provideLocal (injectionClicksContext , toRef (props , ' clicksContext' ))
3333provideLocal (injectionSlideZoom , zoom )
3434
35- const zoomStyle = computed (() => {
36- return zoom .value === 1
37- ? undefined
38- : {
39- width: ` ${100 / zoom .value }% ` ,
40- height: ` ${100 / zoom .value }% ` ,
41- transformOrigin: ' top left' ,
42- transform: ` scale(${zoom .value }) ` ,
43- }
44- })
4535const style = computed <CSSProperties >(() => ({
46- ... zoomStyle .value ,
4736 ' user-select' : configs .selectable ? undefined : ' none' ,
37+ ' --slidev-slide-zoom-scale' : zoom .value === 1 ? undefined : zoom .value ,
4838}))
4939 </script >
5040
@@ -69,5 +59,14 @@ const style = computed<CSSProperties>(() => ({
6959.slidev-page {
7060 position : absolute ;
7161 inset : 0 ;
62+
63+ /* Zoom handling */
64+ --slidev-slide-zoom-scale : 1 ;
65+ width : calc (100% / var (--slidev-slide-zoom-scale ));
66+ height : calc (100% / var (--slidev-slide-zoom-scale ));
67+ transform-origin : top left ;
68+ transform : scale (var (--slidev-slide-zoom-scale ));
69+ /* slide scale = container scale * zoom scale */
70+ --slidev-slide-scale : calc (var (--slidev-slide-container-scale ) * var (--slidev-slide-zoom-scale ));
7271}
7372 </style >
0 commit comments