我想为第二台监视器构建一个基于PowerPoint的“演示者视图”的基于Web的演示工具。我可以使用HTML5全屏API(示例)将主要演示文稿置于全屏状态,但这似乎无法与另一个屏幕上的控制器窗口进行交互。当其中一个全屏显示时,有什么方法可以与两个不同的显示器上的网页窗口进行交互?
细节:铬和Safari在OS X使用狮子自身的全屏模式,这是公知的用于多个显示器被破坏(例如,1,2) -所有其他显示器只显示灰度,并且可以甚至不拖动标签到不同的显示。Firefox 11只是创建一个普通的全屏窗口(谢谢!),但是当您单击任何其他窗口时,它会全屏显示。
这是如此接近工作,但到目前为止...
我有svg stroke-linecap属性的问题.我在AngularJS中有圆形进度条,我想将外圆(蓝色圆圈)设置为圆形"端".看看这个小提琴.
<svg ... height="130" width="130">
<!-- ngIf: background -->
<circle ...
ng-if="background"
fill="#fff"
class="ng-scope"
stroke-width="13"
stroke="#cc3399"
r="57.5"
cy="65"
cx="65"
stroke-linecap="round"
/>
<!-- end ngIf: background -->
<circle ...
fill="none"
stroke-dashoffset="36.12831551628261"
stroke-dasharray="361.28315516282623"
stroke-width="13"
stroke="#432db3"
stroke-linecap="round"
r="57.5"
cy="65"
cx="65"
transform="rotate(-89.9, 65, 65)"
/>
</svg>
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
我有一堆 svg 图像(1.svg 2.svg ...),我想将它们居中并将画布大小调整为所有图像的相同值。假设图像 1.svg 有 w。600 和 h。800 和 2.svg 有 w。1000 和小时。400. 我想将画布设置为 1000x800 和中心图像。结果,图像不会调整大小,但它们的侧面会有额外的空间 -> 1.svg 仍将是 600x800,但在尺寸为 1000x800 的画布中,2.svg 将是 1000x400,但在尺寸为 1000x800 的画布中。可以在命令行中执行吗?使用 inkscape、imagemagick 等?
提前致谢!
我的疑问是:每当我第一次按任何按钮时,图像会在4秒内成功转换到所需的过滤器.但是当我按下另一个按钮时,转换会在没有4秒的情况下立即发生.每次按下按钮,如何在4秒内更改图片?
function change_image() {
document.getElementById("blur").style.filter = "sepia(1)";
}
function change_image_2() {
document.getElementById("blur").style.filter = "grayscale(100%)";
}
function change_image_3() {
document.getElementById("blur").style.filter = "blur(5px)";
}Run Code Online (Sandbox Code Playgroud)
#blur {
transition-duration: 4s;
}Run Code Online (Sandbox Code Playgroud)
<div id="blur">
<img src="http://placehold.it/300" alt="whatever" height="400" width="300">
</div>
<br>
<button class="btn btn-success" type="button" onclick="change_image()">Sepia</button>
<button class="btn btn-success" type="button" onclick="change_image_2()">Grayscale</button>
<button class="btn btn-success" type="button" onclick="change_image_3()">Blur</button>Run Code Online (Sandbox Code Playgroud)
考虑以下JavaScript代码(在节点REPL中):
> let a = new Array(10)
undefined
> a
[ <10 empty items> ]
> a.map(e => 1)
[ <10 empty items> ]
> let b = new Array(10).fill(undefined)
undefined
> b
[ undefined,
undefined,
undefined,
undefined,
undefined,
undefined,
undefined,
undefined,
undefined,
undefined ]
> b.map(e => 1)
[ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ]
>
Run Code Online (Sandbox Code Playgroud)
当我创建一个空数组时,我会得到"空项",它们的行为似乎与之不同undefined.有人能解释一下有什么区别吗?
显然,Safari 在发送 POST 数据时对 Unicode 进行了规范化,而所有其他主要浏览器只发送它们所提供的内容。
规范化似乎发生在数据通过网络发送之前,并且对数据使用normalize()不起作用(Safari 强制执行 NFC,无论它提供什么)。
当请求带有重音字符的文件名时,这会成为一个问题,它在 NFC 和 NFD 格式中具有不同的代码点。解释基本上归结为Unicode 等价中的“组合字符”与“预组合字符” )。
话虽如此,鉴于 API 不在后端进行自己的规范化,并且需要一个字符串数组(文件名),是否可以在使用 Safari 时在前端发送正确的文件名?
Unicode 规范化问题的一个例子:
const str = 'Rosé'
const nfc = str.normalize()
const nfd = str.normalize('NFD')
console.log(nfc === nfd) // false
console.log(nfc.codePointAt(3)) // 233
console.log(nfd.codePointAt(3)) // 101
console.log(nfc.codePointAt(4)) // undefined
console.log(nfd.codePointAt(4)) // 769
Run Code Online (Sandbox Code Playgroud)
一个最小的、可重现的例子:
请注意 Chrome 和 Safari 之间的控制台日志差异。
const isCorrectForm = (path, form) => path === path.normalize(`NF${form}`)
const fetchData = async() => {
const sourcePathC = …Run Code Online (Sandbox Code Playgroud)我尝试从 抛出一个错误JSON.parse(),我希望“unhandledrejection”事件会捕获它:
window.addEventListener('unhandledrejection', event => {
console.log('unhandledrejection:', event.reason?.message || event.reason);
});
Promise.resolve("{")
.then((data) => {
JSON.parse(data)
});Run Code Online (Sandbox Code Playgroud)
但是(Chrome 的)控制台中出现 Uncaught (承诺):
Uncaught (in promise) SyntaxError: Unexpected end of JSON input
at JSON.parse (<anonymous>)
...
Run Code Online (Sandbox Code Playgroud)
我尝试了更多抛出错误的方法,它们都可以被捕获:
Uncaught (in promise) SyntaxError: Unexpected end of JSON input
at JSON.parse (<anonymous>)
...
Run Code Online (Sandbox Code Playgroud)
我试图重新抛出错误,但它仍然无法被“unhandledrejection”捕获:
window.addEventListener('unhandledrejection', event => {
console.log('unhandledrejection:', event.reason?.message || event.reason);
});
Promise.resolve("{")
.then((data) => {
eval(data)
}); // unhandledrejection: SyntaxError: Unexpected end of input
Promise.resolve()
.then(() => {
throw 123
}); …Run Code Online (Sandbox Code Playgroud)我试图使用基于动态值的自定义属性,例如attr().
例如,在下面的代码中,我尝试根据当前元素的id属性访问两个自定义属性.
:root{
--app-foo: 'Hello';
--app-bar: 'World';
}
div::after{
/* expected :
'Hello' for #foo
'World' for #bar */
content: var('--app-'attr(id));
}Run Code Online (Sandbox Code Playgroud)
<div id="foo"></div>
<div id="bar"></div>Run Code Online (Sandbox Code Playgroud)
但它显然失败了.
有没有办法实现这个目标?
我正在尝试更改sinkIdchrome 应用程序中的音频元素。
代码:
var audio = new Audio();
audio.setSinkId("communications");
Run Code Online (Sandbox Code Playgroud)
我会收到这个错误:
DOMException: No permission to use requested device
因此,为了获得许可,我尝试这样做:
navigator.webkitGetUserMedia({
audio: true
}, (stream) => {
console.log("stream: ", stream);
}, (error) => {
console.log("error: ", error);
});
Run Code Online (Sandbox Code Playgroud)
但现在我明白了:
error:
NavigatorUserMediaError {name: "InvalidStateError", message: "", constraintName: ""}
Run Code Online (Sandbox Code Playgroud)
不知道有没有
因此,我正在寻找一个H1标签来围绕一个容器。如果使用CSS旋转,则可以旋转文本,但显然只能旋转90度,而不是围绕div旋转。我希望将文本保留在ONE H1标签中,因为设计人员希望将其作为页面的标题并用于SEO。
我不确定从我所做的所有研究中是否有可能。我有点难过。我想你们可能知道这是否有可能。
<h1>Latest News</h1>
<div>Blue Square</div>
Run Code Online (Sandbox Code Playgroud) javascript ×7
html ×4
css ×3
svg ×2
arrays ×1
audio ×1
command-line ×1
css3 ×1
dynamic ×1
firefox ×1
fullscreen ×1
html5 ×1
imagemagick ×1
inkscape ×1
post ×1
promise ×1
rest ×1
safari ×1
undefined ×1
unhandled-promise-rejection ×1
unicode ×1