Updated notes display and scaling. Moved carousel to absolute pixel positions manually calculated instead of % since that didn't work too well..."
parent
b35ecf7df9
commit
f3d72301b2
@ -0,0 +1,5 @@
|
||||
<div class="position-relative h-100 w-100" (resized)="onResize($event)" #container>
|
||||
<div class="position-absolute" (resized)="onResize($event)" #element>
|
||||
<ng-content></ng-content>
|
||||
</div>
|
||||
</div>
|
@ -0,0 +1,51 @@
|
||||
import { AfterViewInit, Component, ElementRef, ViewChild } from '@angular/core';
|
||||
import { AngularResizeEventModule, ResizedEvent } from 'angular-resize-event';
|
||||
|
||||
@Component({
|
||||
selector: 'scalable',
|
||||
templateUrl: './scalable.component.html',
|
||||
imports: [ AngularResizeEventModule ],
|
||||
standalone: true
|
||||
})
|
||||
export class ScalableComponent implements AfterViewInit {
|
||||
@ViewChild('container') container?: ElementRef;
|
||||
@ViewChild('element') element?: ElementRef;
|
||||
|
||||
ngAfterViewInit(): void {
|
||||
if (!this.container || !this.element) {
|
||||
return;
|
||||
}
|
||||
|
||||
setTimeout(() => this.update());
|
||||
}
|
||||
|
||||
update() {
|
||||
if(!this.container || !this.element) {
|
||||
return;
|
||||
}
|
||||
|
||||
const containerWidth = this.container?.nativeElement.clientWidth;
|
||||
const containerHeight = this.container?.nativeElement.clientHeight;
|
||||
const elementWidth = this.element?.nativeElement.clientWidth;
|
||||
const elementHeight = this.element?.nativeElement.clientHeight;
|
||||
|
||||
this.element.nativeElement.style.transform = "";
|
||||
|
||||
this.element.nativeElement.style.left = '0';
|
||||
this.element.nativeElement.style.top = '0';
|
||||
|
||||
this.element.nativeElement.style.transformOrigin = "left top";
|
||||
|
||||
let scale = containerWidth / elementWidth;
|
||||
|
||||
if(containerHeight < elementHeight * scale) {
|
||||
scale = containerHeight / elementHeight;
|
||||
}
|
||||
|
||||
this.element.nativeElement.style.transform += `scale(${scale}, ${scale})`;
|
||||
}
|
||||
|
||||
onResize(_event: ResizedEvent) {
|
||||
this.update();
|
||||
}
|
||||
}
|
Loading…
Reference in new issue