按纵横比 angular div 调整大小
Resize with aspect ration angular div
我正在尝试调整 angular 中 div 的大小,以保持(矩形的)纵横比。但我做不到。我无法拖动 div 的角并调整它的大小。这是一个 stackbliz
https://stackblitz.com/edit/icon-font-awesome-f6ydhr?file=src/app/app.component.ts
我尝试使用这个答案:
但没有成功。
这是一些代码
import { Component } from "@angular/core";
@Component({
selector: "my-app",
templateUrl: "./app.component.html",
styleUrls: ["./app.component.css"]
})
export class AppComponent {
width= 300;
height= 150;
color= 'red';
dragEvent(event: MouseEvent) {
let ratio = (16 / 10);
let diagonal = this.height * ratio;
this.height = this.getHeight(diagonal, ratio);
this.width = this.getWidth(this.height, ratio);
}
getHeight(length, ratio) {
let height = ((length) / (Math.sqrt((Math.pow(ratio, 2) + 1))));
return Math.round(height);
}
getWidth(length, ratio) {
let width = ((length) / (Math.sqrt((1) / (Math.pow(ratio, 2) + 1))));
return Math.round(width);
}
}
并在 html
<div class="resize" (mousedown)="dragEvent($event)">
<p>drag</p>
</div>
您可能需要参考 this post。 post 中有一个 stackblitz link,您可能会发现它很有用。
在 mousedown 处理程序中,我在 mousemove 事件上添加了一个侦听器,每次移动时,高度和宽度都会根据 event.pageX 调整。
我尽量让它简单实用。如果我们总是 adding/subtracting 两者的数字相同,我认为不需要重新计算高度和宽度。
mouseup 侦听器只是为了移除mousemove 侦听器。
我刚刚用我的解决方案为你的项目创建了一个 StackBlitz 分支。
我正在尝试调整 angular 中 div 的大小,以保持(矩形的)纵横比。但我做不到。我无法拖动 div 的角并调整它的大小。这是一个 stackbliz
https://stackblitz.com/edit/icon-font-awesome-f6ydhr?file=src/app/app.component.ts
我尝试使用这个答案:
但没有成功。 这是一些代码
import { Component } from "@angular/core";
@Component({
selector: "my-app",
templateUrl: "./app.component.html",
styleUrls: ["./app.component.css"]
})
export class AppComponent {
width= 300;
height= 150;
color= 'red';
dragEvent(event: MouseEvent) {
let ratio = (16 / 10);
let diagonal = this.height * ratio;
this.height = this.getHeight(diagonal, ratio);
this.width = this.getWidth(this.height, ratio);
}
getHeight(length, ratio) {
let height = ((length) / (Math.sqrt((Math.pow(ratio, 2) + 1))));
return Math.round(height);
}
getWidth(length, ratio) {
let width = ((length) / (Math.sqrt((1) / (Math.pow(ratio, 2) + 1))));
return Math.round(width);
}
}
并在 html
<div class="resize" (mousedown)="dragEvent($event)">
<p>drag</p>
</div>
您可能需要参考 this post。 post 中有一个 stackblitz link,您可能会发现它很有用。
在 mousedown 处理程序中,我在 mousemove 事件上添加了一个侦听器,每次移动时,高度和宽度都会根据 event.pageX 调整。
我尽量让它简单实用。如果我们总是 adding/subtracting 两者的数字相同,我认为不需要重新计算高度和宽度。
mouseup 侦听器只是为了移除mousemove 侦听器。
我刚刚用我的解决方案为你的项目创建了一个 StackBlitz 分支。