Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 使用角度调整元素大小_Html_Css_Angular_Typescript - Fatal编程技术网

Html 使用角度调整元素大小

Html 使用角度调整元素大小,html,css,angular,typescript,Html,Css,Angular,Typescript,我想制作两个可以水平调整大小的可拉伸矩形(左右)。但我当前代码的问题是,一旦我调整第一个矩形的大小(红色),第二个矩形(蓝色)就会自动跳到第一个矩形的初始位置。请帮我解决这个问题。 我将我的代码与输出图像一起附加 html文件: <div class="rectangle" [ngStyle]="style" mwlResizable [validateResize]="validate" [enableGhostResize]="true" [resizeSnapGrid]="{ l

我想制作两个可以水平调整大小的可拉伸矩形(左右)。但我当前代码的问题是,一旦我调整第一个矩形的大小(红色),第二个矩形(蓝色)就会自动跳到第一个矩形的初始位置。请帮我解决这个问题。 我将我的代码与输出图像一起附加

html文件:

<div class="rectangle" [ngStyle]="style" mwlResizable [validateResize]="validate" 
[enableGhostResize]="true" 
[resizeSnapGrid]="{ left: 1, right: 1 }"  (resizeEnd)="onResizeEnd($event)">
<div class="resize-handle-left" mwlResizeHandle [resizeEdges]="{ left: true }"></div>
<div class="resize-handle-right" mwlResizeHandle [resizeEdges]="{ right: true }"></div>
</div>

<div class="rectangle1" [ngStyle]="style1" mwlResizable [validateResize]="validate1" 
[enableGhostResize]="true" 
[resizeSnapGrid]="{ left: 1, right: 1 }" (resizeEnd)="onResizeEnd1($event)">
<div class="resize-handle-left1" mwlResizeHandle [resizeEdges]="{ left: true }"></div>
<div class="resize-handle-right1" mwlResizeHandle [resizeEdges]="{ right: true }"></div>
</div>
.ts文件:

import { Component } from '@angular/core';
import { ResizeEvent } from 'angular-resizable-element';

@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.scss']
})

export class AppComponent {
constructor() { }

public style: object = {};
public style1: object = {};

validate(event: ResizeEvent): boolean {
const MIN_DIMENSIONS_PX: number = 50;
if (
  event.rectangle.width &&
  event.rectangle.height &&
  (event.rectangle.width < MIN_DIMENSIONS_PX ||
    event.rectangle.height < MIN_DIMENSIONS_PX)
   ) {
  return false;
 }
return true;
}

validate1(event: ResizeEvent): boolean {
const MIN_DIMENSIONS_PX: number = 50;
if (
  event.rectangle.width &&
  event.rectangle.height &&
  (event.rectangle.width < MIN_DIMENSIONS_PX ||
    event.rectangle.height < MIN_DIMENSIONS_PX)
  ) {
  return false;
  }
return true;
}

onResizeEnd(event: ResizeEvent): void {
this.style = {
  position: 'fixed',
  left: `${event.rectangle.left}px`,
  top: `${event.rectangle.top}px`,
  width: `${event.rectangle.width}px`,
  height: `${event.rectangle.height}px`
  };
 }

 onResizeEnd1(event: ResizeEvent): void {
 this.style1 = {
  position: 'fixed',
  left: `${event.rectangle.left}px`,
  top: `${event.rectangle.top}px`,
  width: `${event.rectangle.width}px`,
  height: `${event.rectangle.height}px`
  };
 }
}
从'@angular/core'导入{Component};
从“角度可调整大小的元素”导入{ResizeEvent};
@组成部分({
选择器:'应用程序根',
templateUrl:“./app.component.html”,
样式URL:['./app.component.scss']
})
导出类AppComponent{
构造函数(){}
公共样式:object={};
公共样式1:object={};
验证(事件:ResizeEvent):布尔值{
常数最小尺寸:数量=50;
如果(
event.rectangle.width&&
event.rectangle.height&&
(event.rectangle.width<最小尺寸||
event.rectangle.height<最小尺寸(像素)
) {
返回false;
}
返回true;
}
validate1(事件:ResizeEvent):布尔值{
常数最小尺寸:数量=50;
如果(
event.rectangle.width&&
event.rectangle.height&&
(event.rectangle.width<最小尺寸||
event.rectangle.height<最小尺寸(像素)
) {
返回false;
}
返回true;
}
onResizeEnd(事件:ResizeEvent):无效{
此.style={
位置:'固定',
左:`${event.rectangle.left}px`,
top:`${event.rectangle.top}px`,
宽度:`${event.rectangle.width}px`,
高度:`${event.rectangle.height}px`
};
}
onResizeEnd1(事件:ResizeEvent):无效{
此参数为0.style1={
位置:'固定',
左:`${event.rectangle.left}px`,
top:`${event.rectangle.top}px`,
宽度:`${event.rectangle.width}px`,
高度:`${event.rectangle.height}px`
};
}
}
输出的链接:


两个矩形的resizeEnd是相同的事件。因此,当它触发时,将调用附加到此事件的函数。在代码中 函数:-onResizeEnd和onResizeEnd1必须一起调用 当resizeEnd事件发生时,另一个矩形的值 重置了


尝试为两个矩形创建单独的事件


让我知道这是否有用。

删除css属性
top
position

import { Component } from '@angular/core';
import { ResizeEvent } from 'angular-resizable-element';

@Component({
  selector: 'my-app',
  templateUrl: './app.component.html',
  styleUrls: [ './app.component.css' ]
})
export class AppComponent  {
  name = 'Angular';

public style: object = {};
public style1: object = {};

validate(event: ResizeEvent): boolean {
const MIN_DIMENSIONS_PX: number = 50;
if (
  event.rectangle.width &&
  event.rectangle.height &&
  (event.rectangle.width < MIN_DIMENSIONS_PX ||
    event.rectangle.height < MIN_DIMENSIONS_PX)
   ) {
  return false;
 }
return true;
}

validate1(event: ResizeEvent): boolean {
const MIN_DIMENSIONS_PX: number = 50;
if (
  event.rectangle.width &&
  event.rectangle.height &&
  (event.rectangle.width < MIN_DIMENSIONS_PX ||
    event.rectangle.height < MIN_DIMENSIONS_PX)
  ) {
  return false;
  }
return true;
}

onResizeEnd(event: ResizeEvent): void {
this.style = {

  left: `${event.rectangle.left-8}px`,
  width: `${event.rectangle.width}px`,
  height: `${event.rectangle.height}px`
  };
 }

 onResizeEnd1(event: ResizeEvent): void {
 this.style1 = {
  left: `${event.rectangle.left-8}px`,
  width: `${event.rectangle.width}px`,
  height: `${event.rectangle.height}px`
  };
 }
}
从'@angular/core'导入{Component};
从“角度可调整大小的元素”导入{ResizeEvent};
@组成部分({
选择器:“我的应用程序”,
templateUrl:“./app.component.html”,
样式URL:['./app.component.css']
})
导出类AppComponent{
名称='角度';
公共样式:object={};
公共样式1:object={};
验证(事件:ResizeEvent):布尔值{
常数最小尺寸:数量=50;
如果(
event.rectangle.width&&
event.rectangle.height&&
(event.rectangle.width<最小尺寸||
event.rectangle.height<最小尺寸(像素)
) {
返回false;
}
返回true;
}
validate1(事件:ResizeEvent):布尔值{
常数最小尺寸:数量=50;
如果(
event.rectangle.width&&
event.rectangle.height&&
(event.rectangle.width<最小尺寸||
event.rectangle.height<最小尺寸(像素)
) {
返回false;
}
返回true;
}
onResizeEnd(事件:ResizeEvent):无效{
此.style={
左:`${event.rectangle.left-8}px`,
宽度:`${event.rectangle.width}px`,
高度:`${event.rectangle.height}px`
};
}
onResizeEnd1(事件:ResizeEvent):无效{
此参数为0.style1={
左:`${event.rectangle.left-8}px`,
宽度:`${event.rectangle.width}px`,
高度:`${event.rectangle.height}px`
};
}
}

因为我没有完整的代码,所以很难做到这一点。你能在StackBlitz上创建演示吗?它只是解决了我们当前的目的。当向左或向右滚动页面时,矩形的位置保持不变。现在如何解决这个问题?我已经更新了代码,现在它应该可以在滚动页面时工作
import { Component } from '@angular/core';
import { ResizeEvent } from 'angular-resizable-element';

@Component({
  selector: 'my-app',
  templateUrl: './app.component.html',
  styleUrls: [ './app.component.css' ]
})
export class AppComponent  {
  name = 'Angular';

public style: object = {};
public style1: object = {};

validate(event: ResizeEvent): boolean {
const MIN_DIMENSIONS_PX: number = 50;
if (
  event.rectangle.width &&
  event.rectangle.height &&
  (event.rectangle.width < MIN_DIMENSIONS_PX ||
    event.rectangle.height < MIN_DIMENSIONS_PX)
   ) {
  return false;
 }
return true;
}

validate1(event: ResizeEvent): boolean {
const MIN_DIMENSIONS_PX: number = 50;
if (
  event.rectangle.width &&
  event.rectangle.height &&
  (event.rectangle.width < MIN_DIMENSIONS_PX ||
    event.rectangle.height < MIN_DIMENSIONS_PX)
  ) {
  return false;
  }
return true;
}

onResizeEnd(event: ResizeEvent): void {
this.style = {

  left: `${event.rectangle.left-8}px`,
  width: `${event.rectangle.width}px`,
  height: `${event.rectangle.height}px`
  };
 }

 onResizeEnd1(event: ResizeEvent): void {
 this.style1 = {
  left: `${event.rectangle.left-8}px`,
  width: `${event.rectangle.width}px`,
  height: `${event.rectangle.height}px`
  };
 }
}