gpt4 book ai didi

events - 处理聚合物元素中调整大小事件的最佳实践是什么?

转载 作者:行者123 更新时间:2023-12-04 04:17:30 24 4
gpt4 key购买 nike

我正在尝试创建一个从 Canvas 元素扩展的“视口(viewport)”类型元素。我打算让它填充父容器,但这似乎不是很简单。

canvas 元素不适用于 style="width:100%; height:100%"(如果未设置特殊的 Canvas 宽度和高度属性,它将恢复为 300x150 像素的默认值,否则将变为 100x100如果我尝试将这些属性设置为“100%”,则为像素。这让我不得不根据父元素的大小手动设置 Canvas 元素的宽度。但是当我试图找出一个访问调整大小事件的方法我可以从自定义元素的角度添加处理程序。我似乎无法从自定义元素中的任何位置访问 window.on.resize。我必须从外部执行此操作吗?

这是一个示例聚合物元素定义:

<polymer-element name="canvas-viewport">
<template>
<style>
@host{
:scope {
margin:0px;
padding:0px;
display:block;
position:relative;
width:100%;
height:100%;
background:limegreen;
overflow:visible;
border:0;
}
}

div {
border:0;
margin:0px;
padding:0px;
width:100%;
height:100%;
}

</style>
<div id="container">
<canvas width="{{wpWidth}}" height="{{wpHeight}}" id="theCanvas"></canvas>
</div>
</template>
<script type="application/dart" src="canvas_viewport.dart"></script>
</polymer-element>

这是随附的聚合物类定义中的一些 dart 代码,用于尝试处理我根据对此问题的建议解决方案所做的调整大小。

@override
void attached() {
super.attached();
viewPortContainer = shadowRoot.querySelector("#container");
window.onResize.listen(resizecontainer);
}


void resizecontainer(Event e){
wpWidth = viewPortContainer.clientWidth;
wpHeight = viewPortContainer.clientHeight;
print("resizing Width:$wpWidth , Height:$wpHeight ");
}

然而,这会导致在每个调整大小事件中高度增加三个像素的错误,即使边距和填充设置为零也是如此。

最佳答案

OnResize 在自定义元素中为我工作。

@override
void attached() {
super.attached();
window.onResize.listen((e) {
print(e.currentTarget.innerWidth);
});
}

关于events - 处理聚合物元素中调整大小事件的最佳实践是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19694229/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com