我对画布元素和方法有奇怪的情况captureStream
。根据文档 HTMLCanvasElement 有一个方法captureStream
。但是我的 Angular6 应用程序声称没有这样的方法。
所以这段代码不起作用:
let canvas: HTMLCanvasElement;
canvas = document.createElement('canvas');
let stream = canvas.captureStream(20);
Run Code Online (Sandbox Code Playgroud)
它在第三行失败。
此代码运行没有任何错误:
let canvas: any;
canvas = document.createElement('canvas');
let stream = canvas.captureStream(20);
Run Code Online (Sandbox Code Playgroud)
这怎么可能?我 100% 确定 HTMLCanvasElement 有这个方法并且 document.createElement('canvas') 返回 HTMLCanvasElement。
我的问题是如何在传单中更新我的网格层而没有一些奇怪的"眨眼"效果.
我使用Leaflet.VectorGrid在画布上显示我的geojson.问题是我想重绘我的图层,因为我的数据已更新.我使用该代码重绘图层:
tileLayer.redraw();
Run Code Online (Sandbox Code Playgroud)
当我使用此功能时,我的图层会消失一段时间,然后它会显示更改的数据.所以最后的效果很好,但问题是:
当地图"空"时,如何消除这一时刻?
我想重绘我的图层,没有这个奇怪的时刻,当几毫秒时图层清晰.
我正在开发一个自定义 rxjs 运算符来扩展bufferTime
运算符功能。BufferTime 需要时间跨度和缓冲区的最大大小(可选),但在我的情况下,我不仅需要根据时间和大小,还需要根据附加触发器(routeChange)重置缓冲区。
我创建了一个自定义运算符来处理这个问题,它需要 timeSpan、maxSize 和 trigger$,为 timeSpan 缓冲区和 size 缓冲区创建可观察量,最后将这 3 个缓冲区合并在一起并作为运算符的单个通知程序传递buffer
。
这是源代码:
function bufferFrom<T>(...triggers: Observable<any>[]): (source$: Observable<T>) => Observable<T[]> {
// restart Subject used for taking control over all triggers and resetting them on emit
const restart: Subject<void> = new ReplaySubject<void>(1);
// function that wraps trigger with restart Observable to take control over that
const withRestart: <R>(source: Observable<R>) => Observable<R> = <R>(source: Observable<R>) => restart.asObservable().pipe(switchMap(() => source));
// create Observable from all triggers …
Run Code Online (Sandbox Code Playgroud) 我在 docker 上使用 nginx 服务 Angular 应用程序时遇到问题。问题仅在于我想在现场打开 SSL 时。我正在使用 Bamboo 进行部署。
这是我的 Dockerfile:
FROM node:8.6 as node
WORKDIR /app
COPY package.json /app/
COPY ssl/certificate.crt /app/
COPY ssl/ /app/ssl
RUN npm install -g @angular/cli --unsafe
RUN npm install
COPY ./ /app/
RUN ng build --prod --aot=false --env=prod
FROM nginx
RUN mkdir -p /ssl
COPY --from=node /app/ssl/ /ssl/
ADD ssl/certificate.crt /etc/nginx/certs/
ADD ssl/private.key /etc/nginx/certs/
RUN ls /etc/nginx/certs/
COPY --from=node /app/dist/ /usr/share/nginx/html
RUN ls /usr/share/nginx/html
Run Code Online (Sandbox Code Playgroud)
要运行的脚本:
docker build -t test-app .
docker run …
Run Code Online (Sandbox Code Playgroud) 我想要一个div,在这个div里面必须是一个有一些颜色的字段.所以我想要div例如200px x 200px并设置背景颜色:灰色,其大小ll为100px x 100px,并从位置50px 50px开始.
请使用以下代码查看此代码段:
div{
background-color: gray;
background-size: 100px 100px;
background-position: 50px 50px;
min-width:200px!important;
min-height:200px!important;
max-width:200px!important;
max-height:200px!important;
padding:50px;
}
Run Code Online (Sandbox Code Playgroud)
<div>some text</div>
Run Code Online (Sandbox Code Playgroud)
因此,当您看到背景颜色填充所有div的宽度和高度时.这可能使背景只填充50%吗?
注意:红色区域应该是透明的.
我有一些char数组:char char[8]
其中包含两个int,前4个索引是第一个int,接下来的4个索引有第二个int.
char array[8] = {0,0,0,1,0,0,0,1};
int a = array[0-3]; // =1;
int b = array[4-8]; // =1;
Run Code Online (Sandbox Code Playgroud)
如何将此数组转换为两个int?
可以有任何其他类型,不一定是int,但这只是一些例子:
我知道我可以将这个数组复制到两个char数组,其大小为4,然后将每个数组转换为int.但我觉得这不好,打破了干净代码的原则.
我对在 Threejs 中使用 GIF 动画感到非常困惑。谷歌上没有例子,我找不到任何关于gif的声明,它们是否支持?
我不敢相信 Threejs 对 GIF 动画有问题。实施起来真的很难吗?
我只想添加到我的图形设计师准备发射的太空火箭中。
有什么线索吗?拜托,我已经没有主意了。
如何在竹子上部署我的角度4应用程序?
我只用1. git 2.做一个简单的工作npm install
.ng build
这成功通过,但我接下来要做什么?如何在服务器上部署这个,我可以从浏览器进入应用程序?
我试图在tomcat上部署它,但我没有任何战争.
我不知道该怎么办
如何动态显示和隐藏 Material Design 工具提示?我有显示工具提示 int *ngFor 的组件
<div *ngFor="let item of items" fxLayout="row">
<mat-form-field matTooltip="{{item.comment}}">
<input matInput>
</mat-form-field>
</div>
Run Code Online (Sandbox Code Playgroud)
我有按钮来处理更改时显示/隐藏工具栏,但如何显示和隐藏这些工具栏?
在文档中有一个使用一个工具栏的示例:
<button mat-raised-button (click)="tooltip.show()"> Show tooltip </button>
<span matTooltip="This is the tooltip message" #tooltip="matTooltip">
I have a tooltip
</span>
Run Code Online (Sandbox Code Playgroud)
这很简单,但是如何处理 *ngFor 中的多个工具提示?
我正在使用Leaflet.VectorGrid 插件在 Leaflet 1.0 中绘制通过 geojson-vt 切片的切片。
我想在绘图时为路径添加渐变。我在stackoverflow上找到了沿路径添加渐变的代码,但它需要一个画布。
我的问题是:如何获得对画布或其上下文 ( ctx
)的引用以在其上绘制?
这是我添加 tileLayer 的代码:
var tileLayer = L.vectorGrid.slicer(data, {
rendererFactory: L.canvas.tilee,
vectorTileLayerStyles: {
sliced: function(properties, zoom) {
var endColor=70;
// var grad = ctx.createLinearGradient(begin[0], begin[1], end[0], end[1]);
// grad.addColorStop(0, begin[2]);
// grad.addColorStop(1, end[2]);
// ctx.strokeStyle = grad;
return {
stroke: true,
fill: true,
color: endColor < 20? 'red' :
endColor < 50? 'orange' :
endColor < 70? 'yellow' :
endColor < 100? 'green' : 'blue',/ …
Run Code Online (Sandbox Code Playgroud) 我有*ngFor
一些标签的md-selection-list ,例如[sport,relax,..]
标签存储在中this.tags
,所选标签存储在中this.tab
我想防止用户选择5个以上的标签。因此,如果用户选择第5个项目,则应该有一些警报,并且仅当未选中某些已选中项目时,用户才能键入其他标签。
我从这段代码开始,但是没有用。我尝试禁用列表项上的“检查”图标,然后在用户存储了<5个标签之前,不要将其添加到this.tab。问题是我无法禁用此“检查”图标。
这是代码:
clickedOnRow(row){
if(this.tab.length > 5){
this.tags.forEach((item,index) =>{
if(item.text == row.text){
this.selectedList.nativeElement.children[index].children[0].children[1].classList.remove('mat-pseudo-checkbox-checked')
this.selectedList.nativeElement.children[index].children[0].children[1].className = 'mat-pseudo-checkbox'
}
});
}else{
this.tab.push(row.text);
}
}
Run Code Online (Sandbox Code Playgroud)
你怎么看待这件事?如何解决这个问题呢?也许还有其他解决方案,更容易吗?是为了这个问题吗?
谢谢你的帮助
我有一个简单的问题。是否有可能实现适用于大多数设备和浏览器的屏幕共享?
我在互联网上查找,发现了一些 chrome 插件,但我想在不安装任何插件或在 chrome 上设置一些实验标志的情况下进行屏幕共享。
最好的解决方案是当我可以从导航器中进行流传输时,就像我的相机捕获一样。
从相机获取视频的代码
this.navig.getUserMedia = ( this.navig.getUserMedia || this.navig.webkitGetUserMedia || this.navig.mozGetUserMedia || this.navig.msGetUserMedia );
this.navig.getUserMedia({video: true, audio: true}, (stream) => {
this.videoElement.nativeElement.src = window.URL.createObjectURL(stream);
this.videoElement.nativeElement.play();
}, (error) => console.warn('video error' + error))
Run Code Online (Sandbox Code Playgroud)
所以我想要捕获屏幕的流对象。那可能吗?
我在互联网上找到了这个,但这给我带来了一些错误......
navigator.mediaDevices.getDisplayMedia({ video: true })
.then(stream => {
// we have a stream, attach it to a feedback video element
videoElement.srcObject = stream;
}, error => {
console.log("Unable to acquire screen capture", error);
});
Run Code Online (Sandbox Code Playgroud)