- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前正在尝试在一些填充路径上使用一些不同的阴影来创建多级发光效果。
但是,当尝试恢复上下文时,它不遵循恢复函数,而是将最后一个 dropshadow 的 ShadowColor 和 ShadowBlur 应用于所有 dropshadow。
这是当前的 Canvas 上下文:
var c=document.getElementById("paradigm");
var ctx=c.getContext("2d");
ctx.save();
ctx.beginPath();
ctx.moveTo(31,21);
ctx.lineTo(142,21);
ctx.lineTo(151,38);
ctx.lineTo(141,44);
ctx.lineTo(32,44);
ctx.lineTo(22,38);
ctx.closePath();
ctx.fillStyle="#111111";
ctx.strokeStyle = 'rgba(95,235,255,0.09)';
ctx.fill();
ctx.stroke();
ctx.restore();
ctx.beginPath();
ctx.moveTo(153,42);
ctx.lineTo(163,60);
ctx.lineTo(109,155);
ctx.lineTo(89,155);
ctx.lineTo(89,143);
ctx.lineTo(141,49);
ctx.closePath();
ctx.fillStyle="#111111";
ctx.strokeStyle = 'rgba(95,235,255,0.09)';
ctx.fill();
ctx.stroke();
ctx.restore();
ctx.beginPath();
ctx.moveTo(20,42);
ctx.lineTo(32,49);
ctx.lineTo(85,143);
ctx.lineTo(85,155);
ctx.lineTo(65,155);
ctx.lineTo(10,60);
ctx.closePath();
ctx.fillStyle="#111111";
ctx.strokeStyle = 'rgba(95,235,255,0.09)';
ctx.fill();
ctx.stroke();
ctx.restore();
ctx.shadowColor='rgba(228,105,22,0.5)';
ctx.shadowBlur=10;
ctx.beginPath();
ctx.moveTo(81,68);
ctx.lineTo(93,68);
ctx.lineTo(99,78);
ctx.lineTo(93,88);
ctx.lineTo(81,88);
ctx.lineTo(75,78);
ctx.closePath();
ctx.fillStyle="#cf672a";
ctx.fill();
ctx.restore();
ctx.shadowColor='rgba(255,255,79,0.5)';
ctx.shadowBlur=3;
ctx.beginPath();
ctx.moveTo(83,71);
ctx.lineTo(92,71);
ctx.lineTo(96,78);
ctx.lineTo(91,85);
ctx.lineTo(82,85);
ctx.lineTo(78,78);
ctx.closePath();
ctx.fillStyle="#ffff4f";
ctx.fill();
ctx.restore();
ctx.beginPath();
ctx.moveTo(81,68);
ctx.lineTo(93,68);
ctx.lineTo(99,78);
ctx.lineTo(93,88);
ctx.lineTo(81,88);
ctx.lineTo(75,78);
ctx.closePath();
ctx.strokeStyle = 'black';
ctx.stroke();
这是该问题的 jsfiddle:http://jsfiddle.net/jbhX5/
在 10 模糊度下,中间六边形周围应该是橙色“发光”,但现在在 3 模糊度下是黄色“发光”。
最佳答案
您只调用 save()
一次,但 restore()
五次。
存储状态的工作方式与堆栈相同,其中 save()
执行 push 操作,restore()
执行操作>流行。这意味着您需要将 restore()
的调用次数与 save()
相匹配。
ctx.save(); // push
...
ctx.restore(); // pop
// here state will be as before save()
ctx.save(); // push
...
ctx.restore(); // pop
// here state will be as before save()
或
ctx.save(); // push
ctx.save(); // push
...
ctx.restore(); // pops second save
// here state will be as before second save()
...
ctx.restore(); // pops first save
// here state will be as before first save()
如果您调用恢复时没有保存与 specs says 相匹配的状态(我的重点):
The restore() method must pop the top entry in the drawing state stack, and reset the drawing state it describes. If there is no saved state, the method must do nothing.
换句话说:第二次调用 restore()
时什么也没有发生/什么也没有恢复,因为堆栈上只存在一种状态。
<强> Modified fiddle
关于javascript - HTML5 Canvas dropshadow 不遵守 Restore() 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23819857/
现在如果我点击按钮 A,按钮 B 会显示 DropShadow 效果: Private Sub ButtonA_Click(ByVal sender As System.Object, ByVal
我有一个圆 Angular 矩形,我正在尝试对其应用 1px 模糊、1px 垂直偏移投影。我的问题是底部的阴影看起来比侧面的阴影厚得多。有没有办法纠正这个问题,使底部阴影与侧面的宽度相同?我想过使用
完成了一个在我的 CSS 中使用投影的网站。我利用在线工具生成语法 ( http://css3generator.com/ ) 然后在拼图上验证我的网站时,我反复收到关于阴影的验证错误。我做了一些研究
我有一个 WindowStyle 设置为无的 WPF 窗口。有什么方法可以强制此窗口投下阴影(就像 WindowStyle 不是 none 时得到的那样)?我不想将 AllowTransparency
我正在使用 创建自定义窗口表单混合 . (通过设置 AllowTransparency 到 True ) 我已经完成了设计,效果很好。现在我想给它添加阴影效果。 ( DropShadowEffect
我有一个 UWP 应用程序,我应该首先指出它使用很少的 XAML。这些 View 是根据从 API 接收到的 JSON 对象构建的。这意味着绝大多数事情都是在 C# 中完成的,因此给我的问题增加了一点
在我正在 JavaFX 中开发的游戏中,我有带有 Label 的卡片( DropShadow s) s。卡片可以移动,当它们移动时,阴影会留下一条微弱的痕迹。我尝试过使用Node#setCache(b
有没有人试过用 python wand 创建阴影?我浏览了这个文档,找不到 dropshadow 属性。 http://docs.wand-py.org/en/0.4.1/wand/drawing.h
我有一个带有自定义窗口边框的 WPF 应用程序 (.NET Framework 4)。我使用 WPF Shell Integration Library 禁用了玻璃边框, 并绘制我自己的边框。但是,我
我正在尝试在以编程方式添加的 UITableView 上设置投影。 框架高度被设置为屏幕的特定百分比。所以我想在 tableview 本身上设置一个阴影。 我尝试执行以下操作: tableview_r
我试图用 BackDropFilter 做一些像堆栈中的两个图像(其中一个显然用黑色填充)。但结果模糊了堆栈下面的所有内容(甚至在图像的 alpha 区域)。我已经搜索过这种效果,但还没有找到答案。如
使用 JavaFX,我尝试将文本绘制到 Canvas 上,并将投影和反射效果链接在一起。 以下代码将显示反射的红色文本,然后将投影应用于原始文本和反射文本。 Canvas canvas = new C
我一直在整个互联网上搜索这个,但是对于我看到的大多数用 CSS 回答的问题,人们只是给出了代码而没有解释它们。 -fx-effect: dropshadow(gaussian, rgba(0, 0,
似乎无法让 jquery.dropshadow.js 在正确的选择器上工作。我试图选择 id,但我无法让它工作。我也试过这门课(见下文)。 头 window.onload = functi
Short Version: 目标:在 C# 中的无边界 WinForm 中深沉、黑暗的 Windows 7 阴影 已知的现有解决方案 1: 使用 CreateParams 的简单 XP 风格投影。
我有以下模仿 facebook 的菜单样式布局。我想在左侧有一个阴影,如下所示,但是我使用的带有图层阴影的代码使应用程序变得迟缓。我一直无法找到一个好的替代解决方案。有没有人有创建不影响应用程序性能的
这有点让我发疯。将 DropShadowEffect 添加到按钮。在 IDE 中它看起来像这样: 第二个按钮供引用,没有DropShadowEffect。如您所见,接下来没有区别。然后我构建项目,当它
我目前正在尝试在一些填充路径上使用一些不同的阴影来创建多级发光效果。 但是,当尝试恢复上下文时,它不遵循恢复函数,而是将最后一个 dropshadow 的 ShadowColor 和 ShadowBl
我正在制作一个绘画程序,但用户制作的绘图周围有一个 DropShadow 。当它们删除时,它也会删除 DropShadow。如果我尝试重新应用 DropShadow (使其围绕绘图的新边界),它会起作
在合成中使用投影时,我收到了不良效果。要重现此问题,请按照下列步骤操作: 第 1 步:创建一个新的 UWP 项目并定位 Windows 10 Fall Creators Update(10.0;Bui
我是一名优秀的程序员,十分优秀!