看起来鼠标事件会将监听器添加到画布元素,但键盘事件似乎不适用于画布元素
例如:
浏览器:
铬14.0
FF 5.0.1
我知道我可以使用文档级监听器,但我尝试先获取Canvas元素(这样你的键盘就可以在页面的其他地方工作)
关于如何让关键事件侦听器在画布元素上工作,您有什么想法吗?我认为您不能将键盘事件侦听器直接添加到画布。如果您不想在窗口级别注册事件处理程序,那么我认为您可以将画布包装在div中,并在div上注册键盘事件
<div id="canvasWrapper" style="b
我在画布中添加了一个IText对象,在这里我动态更改文本中每个单词的样式,这里的样式正在更新,但我无法清除应用的以前的样式。因此,每次新样式都会覆盖到以前的样式上
function updateStyle(){
clearItextStyle();
var letterArray =getLetterIndex(iText.getText());
var counter=1;
我试图使用下面的代码在OL3(3.6.0)上复制。我在获取图像上下文以在OSM事件TileLoaded上执行getImageData()和putImageData()时遇到问题。任何导游都将不胜感激
function map_create (div_id, lat, lng, zoom, hide_controls) {
vectorSource=new ol.source.Vector();
vectorLayer=new ol.layer.Vector({source: vectorSou
因此,我对Fabric.js有另一个问题,这可能再次归因于我自己的无知
想象一下,使用free draw在画布上涂鸦一些线路径。完成后,我们将禁用“自由绘制”,此时我希望将绘制的所有对象分组到单个实体中
我制作了一把小提琴,展示了分组阶段
var grp=new fabric.Group();
canvas.getObjects().map(function(o){
if(o.type=="path"){
o.hasControls=o.hasBorders=false
简单地说,我在html5 2D画布上对阿拉伯语文本执行简单的笔划操作时遇到问题
阿拉伯文具有这样一种特性:当字符彼此相邻时,它们会改变形式并合并在一起。显然,js处理文本笔划的方式是将每个字符单独提取并分别对其进行操作。当角色渲染到屏幕上时,角色的边界变得可见,从而导致关节处的笔划颜色泄漏
左边是Javascript的stroke函数生成的结果。右边是使用Photoshop创建的正确结果(不同字体)
有办法解决这个问题吗?您的问题可能是您在填充的版本上绘制了带笔划的版本
做相反的事情,一切都会
对于google+反馈,它如何在不剪切html页面的情况下,将其黑色覆盖层“剪切”为白色矩形,从而为其反馈创建高亮效果?从这篇文章中,我知道突出显示和遮光是标记和标记
我在这个网站上发现了类似的反馈,它的突出效果也是标签,并且使用CSS。然而,它的白色矩形堆叠在黑色覆盖层的顶部,而不是“切割”它。因此,亮点并不像谷歌的那样清晰。对谷歌的反馈突出功能的工作原理有什么见解吗?是通过使用canvas GlobalComposite操作实现的吗?我试图修改代码以使用canvas globalCompos
目前我已经设置了一个画布,我正在尝试添加一些图像到画布上
因此,只有当我在画布上单击时,小图像才会出现在我在画布上单击的位置上
有人能帮我吗?首先要记住的是,您需要捕获画布的坐标,而不是整个页面的坐标,这正是您将从onclick事件中获得的坐标。这很容易翻译,代码如下:
var onMouseClick = function(evt){
var x, y;
var point = findOffset(e.target);
x = e.pageX - point.x;
我对Fabric.js有点问题。我正在将一个JSON字符串加载到画布中,然后在将来的某个时候,我想再次加载更多的JSON(可能是相同的JSON)。第一次加载似乎工作正常,但第二次加载有一个问题:前景路径对象不显示,即使其边界框可单击。我不确定这是否与背景图像有关,或者在再次加载JSON之前清除画布的方式,或者加载JSON的实际方式(或者全部三种方式)有关
我放了一把简单的小提琴
我从JSON对象创建初始画布视图,然后在3秒钟后将其清除,然后在3秒钟后再次加载它(这只是为了模拟在真实应用程序中单击
如何制作圆角的FabricJS画布?我希望用画布本身而不是里面的对象来实现这一点 在画布元素上使用CSSborder radius属性:
var canvas = new fabric.Canvas('my-canvas');
// bigger pixels for more rounded corners
document.getElementById('my-canvas').style.borderRadius = '5px';
或者,在CSS样式表中:
#my-canvas {
我想制作可编辑文本,该文本沿织物路径弯曲,如下图所示。
这是我的代码:
我创建了一个弯曲的fabric.Path和fabric.TextBox,但我不知道如何沿着该路径弯曲文本。请帮我解决这个问题
var canvasObject=document.getElementById(“editorCanvas”);
//将画布设置为与div相等的大小
$(canvasObject).width($(“#canvasContainer”).width();
$(canvasObject).hei
我是Enyo(TouchPad)的新开发人员。我想开发一个包含一些图表的应用程序。所以我尝试在Enyo中使用Dojo框架库
任何人都可以帮助我如何在我的应用程序中包含dojo代码。
我在发代码,请看一下
INDEX.HTML:
<!doctype html>
<html>
<head>
<title>Canvas Demo</title>
<script src="../../../../1.0/framework/enyo.js
我正在尝试在画布上绘制箭头和圆圈,目前在mousemove和MouseMown上清除了整个画布,或者每当调用draw函数时,我都无法绘制多个箭头和圆圈。还有其他方法来完成这项任务吗
heres a fiddle: http://jsfiddle.net/V7MRL/
在每个画布的顶部堆叠两个画布,并在顶部的画布上绘制临时箭头/圆圈,然后在下面的画布上进行最终绘制。
通过这种方式,您可以清除顶部画布而不产生任何问题,并且您的绘图将在下部画布中“累积”
(更新)
我改变了你的抽签功能,所以它需要一
当我使用Toolkit for CreateJs将flash转换为html5时,我总是遇到一个恼人的问题,即以下代码无法正确显示图像:
this.shape.graphics.bf(img.image49).s().p("EhcPBFNMAAAiKZMC4gAAAMAAACKZg");
我认为这是由p(“ehcpbfnmaaaikzmc4gaamaaackzg”)引起的,但我不理解p-code。有人能帮我解决吗
发布到createjs时,您可以关闭“压缩形状”选项。然后您将看到什么是p(“e
我有以下代码将图像渲染为画布的背景:
window.onload = function(){
var canvas = document.getElementById("myCanvas");
var context = canvas.getContext("2d");
var destX = 69;
var destY = 50;
var imageObj = new Image();
imageObj.onload = function(){
我正在用HTML5画布开发图表PoC
每个文本AA、BB等都是画布。我通过hvar canvas=$(“”)生成它们并使用循环显示文本
我使用的是ctx.fillText(txt,x-txt.length*2,18)以显示文本
在这里,我的问题是如何使它们成为垂直文本 要将文本转换为垂直文本,只需使用rotate方法对画布应用旋转变换:
您可能还需要translate变换,以便在旋转后正确定位文本,在了解变换的工作原理之前,可以使用变换(如果知道矩阵,可以跳过此步骤)
我正在用卡布奇诺(Cappuccino)创建一个webapp,我需要一种在CPWindow上绘制形状(矩形、图像等)的方法。是否有任何小部件/控件可用于执行此操作?在Sproutcore等其他框架中是否有类似的控件?还是我必须实施我自己的
我还想知道是否有办法使形状可拖动?在卡布奇诺中,您可以在任何视图中执行自定义绘图。为此,重写drawRect:方法(从CPView继承的任何方法,它几乎是每个控件的继承方法)。您可以使用CPGraphics工具(如),也可以使用CoreGraphics和命令(
我正在主大画布上画一些彩色线条。3种颜色是可能的:红色,绿色,蓝色。为了进一步的使用,我有3个小画布,叫做canvasR canvasG和canvasB,我根据颜色画每一条线,例如canvasR中的红色线。除了对我来说一个很大的谜团外,一切都很完美:当我在主画布onmousemove>onmouseup上画第一条蓝线时,第二条蓝线出现在画布上。。。一切都是正确的。但是当我想在其他地方画第二条蓝线时,第二条onmousemove>onmouseup序列在主画布中一切正常,但在画布中没有:一条不需要
我正在使用JavaScript在文档上生成一个canvas。我希望将画布的数据URI作为图像文件托管在服务器上
是否有任何托管服务或API提供临时托管此文件的方法
其目的是在Facebook提要中共享画布,但Facebook提要需要一个图像URL。没有直接的服务来实现这一点。您需要首先使用Javascript在客户端创建图像文件,然后在blob的帮助下发送一个ajax调用,以便在服务器上上传图像。有关更多信息,请参阅此链接
一旦完成,你可以有一个指向此图像的URL,可以在facebook提要中共
在这里,我使用ChartJS(v2.5.0)渲染图表。当我尝试使用Canvas-to-Blob转换器和filesaver.js导出图表时,得到的是黑色背景。那么,如何获得具有自定义背景颜色(最好是白色)的图像呢?如果您想要自定义背景颜色,那么您必须使用首选颜色绘制背景,并且您可以这样做,如下图所示
$("#NoBidsChart").get(0).toBlob(function(value) {
saveAs(value, "Summary.jpg");
});
演示
//绘制背景
我想使用createGraphics函数在另一个屏幕上绘制一些东西。。。然后将其粘贴到我的主草图中
在docu中,他们给出的示例如下:
var vignette;
函数设置(){
createCanvas(710400);
vignette=createGraphics(400250);
}
函数绘图(){
椭圆(mouseX,mouseY,60,60);
背景(51);
pg.noFill();
pg.stroke(255);
椭圆形(mouseX-150、mouseY-75、60、60);
好的,我正在为一位音乐家设计一个网站,他希望他们的曲目能够通过soundcloud播放,这样他就可以更新它们了
对于他的网站,我把客户的名字用大红笔写在页面中央。我想做的是让每一个字母从红色变为黑色,然后再随着播放的曲目的脉搏变化回来。除了知道我可能需要使用HTML5画布元素和SoundManager2之外,我不知道从哪里开始这个项目
感谢您的想法和帮助。您可以将soundManagers eqData或peakData与whileplaying结合使用来计算脉冲效果:
正如您所说,您可以使用
我在android浏览器上执行了javascript html5画布测试以进行评测。
为了在android webbrowser中禁用html5画布上2d渲染的硬件加速,我在android浏览器中配置了标志。(外部/软件包/应用程序/浏览器…)
但是,这种配置似乎不起作用。
有人能给我一些帮助吗?我想你对Android画布和html5画布感到困惑。它们是两种不同的东西。您的代码片段面向android画布。不是Html5。我认为在浏览器上禁用硬件加速的唯一方法是更改浏览器设置。是Chromes
我有一个使用fabricjs构建的页面上的画布
我是否可以将画布发送到另一个页面,使其保留其所有对象的原样,并且其所有属性和属性都相同。当然可以,只需将画布导出为JSON即可
var canvas = new fabric.Canvas('c');
data = JSON.stringify(canvas)
现在,您可以使用post请求发送该数据,或者将其存储在数据库或任何您想要的地方
canvas.loadFromJSON(data, canvas.renderAll.bind(canvas
我想在HTML5画布上绘制三个渐变。但这并没有产生预期的效果。所以我深入研究了一下,发现rgba0,0,0,0在画布渐变中使用时不是完全透明的。相反,它产生了一种意想不到的黑色调
在CSS中,它工作得很好
我怎样才能获得与CSS相同的效果?请看附件中的截图
CSS属性:
background: linear-gradient(rgba(0, 0, 0, 0), rgb(255, 0, 0));
var grad = ctx.createLinearGradient(0, 0, 0, heigh
在kineticjs(或者rapheljs,如果在SVG中更容易的话)中,是否有一种简单的方法可以对多个重叠形状进行鼠标悬停检测。也就是说,如果我有两个部分重叠的圆,我想以某种方式检测四种情况:
1) 当没有形状时
2) 过了一圈
3) 当越过圆圈B时
4) 当超过两个(重叠部分)时,圆圈A和B
但我需要一个可以扩展到“n”个圆/形状的通用实现
干杯为了解决这个问题,你显然在处理碰撞检测。碰撞检测算法因要检测的形状而异
因此,首先,您可以使用lineTo、arc等方法,并使用内置的isPoint
我正在做一个单词搜索游戏。我需要知道如何使用鼠标在画布上选择和存储文本,以与存储的单词集进行比较。画布是否提供拖放和选择功能?请帮助!或者如果有其他方式,比如easeljs
我正在搜索拖动并选择类似于的内容,正如Epistemex所说,画布不“记住”您在画布上绘制文本的位置,因此它无法定位或拖动该文本
您必须使用javascript实现自己“记住”文本的逻辑
如果你想实现这个逻辑,这里有一个你需要的工具的概要
创建保存文本特征(x、y、宽度、高度、文本内容)的对象
创建一个清除画布并在新的x,
我有一个简单的canvas标记,并试图将其用作我的项目的图形绘制区域。下面是代码
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<canvas id="canva
我的项目包括一个800x2000的canvas元素。我需要做的是从画布上取一个200x2000的切片,并将其显示在相同的800x2000位置。什么方法或方法组合可以帮助我实现这一目标?是;使用的9参数形式将画布的切片(即s源)绘制到自身(即d估计)上,如下所示:
function rescale(slice_start) {
canvas.getContext('2d').drawImage(canvas, slice_start, 0, slice_start + 200, 2000, 0
从HTML5开始,我非常耐心地在动画HTML5画布上编写了下面的代码,以创建一个无限的图形“记录地震”样式。绘图必须从一个点开始,该点指示图形各点的坐标,并且该点必须向左移动。经过大量研究,我无法创建滚动。非常感谢所有能帮助我的人
var ctx = canvas.getContext("2d");
var point = { x:800, y:50 };
createjs.Tween.get(point)
.to({x:800, y: 100}, 2000)
.wa
我在angular 10中开发了一个画布上的织物文本框。这很好。
我的代码是:
HTML
打字脚本代码:
import { AfterViewInit, Component } from '@angular/core';
import { fabric } from 'fabric'
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.componen
当按顺序调用gl.drawArrays时,它会在画布上先前图形的顶部绘制。但是,当我将其放入setInterval()中时,它会在重新绘制之前清除画布
将矩形相互重叠绘制的代码:
for(var i =0; i < 10; i++) {
setRectangle(gl, Math.random()*100, Math.random()*100, 20, 20);
gl.drawArrays(gl.TRIANGLES, 0, 6);
}
下面是包含上述代码的完整示例
我正
我有一个带有一些大型svg文件的fabricJS编辑器,因此,当我在编辑器上与(移动/拖动)项目交互时,我会将其填充得非常滞后和沉重。
如何使用fabricJS优化大型svg文件?
big\u image\u 1.svg:4.4MB
big\u image\u 2.svg:6.1MB
big\u image\u 3.svg:4.1MB
big\u image\u 4.svg:13.6MB
这是我的密码:
var画布;
var canvasObject=document.getElement
我不知道如何将SVG文档中的节点用“字母间距”重新表示为fabric.TextBox
文件中的SVG文本节点是:
<text transform="matrix(1 0 0 1 51.5211 22.2889)" style="fill:#3C2415; font-size:11px; letter-spacing:3;">MINH TUẤN</text>
这里是SVG和FabricJS上的显示:
如何在SVG的文本节点中找到正确的字符间距,分别具有字母间距属性?
我正在尝试编写一个简单的游戏,使用HTML5画布和JavaScript教授一些基本的威尔士语
我目前有一个网页,它显示一个画布,在画布上,绘制了“开始按钮”,用户将单击该按钮开始游戏
我现在想将功能添加到该按钮,这样当用户单击它时,游戏的第一级显示在画布上。然而,我在这方面遇到了一些麻烦,我想知道是否有人可以帮助我
我的index.html文件中有以下代码:
在头部的隐藏部分,我有:
<section hidden>
<img id="StartButton" src="Sta
我知道我在做一些非常愚蠢的事情,所以我希望第二双眼睛能指出我的愚蠢。我正试图让Webshims polyfill在一个简单的画布测试上工作(我第一次接触它)。在Chrome和IE9中效果很好,但在IE8和IE7(开发工具)中进行测试时,我发现错误:
对象不支持属性或方法“getContext”
这是我的密码
<!DOCTYPE html>
<html>
<head>
<script src="http://ajax.googlea
我正在用Flot构建Rails 3.2.11应用程序。我想用Prawn在PDF中呈现我的Flot图表。我的Flot图表在浏览器中呈现良好。我可以很好地创建对虾PDF(尽管还没有图表图像)
我想使用Flot canvas插件在画布上渲染我的轴等,这样当我使用.getCanvas()和.toDataURL()方法将图像数据Ajax到服务器时,它们就被包括在内了,但我似乎无法让它工作
我正在使用jquery.flot.min.js 0.8.0和jquery.flot.canvas.min.js(未指明
我正在使用kinetics制作一个拖放应用程序,一切正常,直到几天控制台出现一个奇怪的错误(UncaughtTypeError:TypeError)。
调试我的应用程序时,我发现当我在后台添加图层时,会发生此错误。这是非常奇怪的,因为我的应用程序在除谷歌chrome之外的所有主要浏览器中都能运行。
有人能帮我吗,我不想失去3个月的工作!
Eric Rowell你有什么线索吗
解决方案是:将“new Image()”替换为
“document.createElement('img')”,它工作得很
在下面的示例中,我尝试使用画布获取文本绘制的动态点
但是ctx.fillText在没有任何数字的情况下使用时不会显示任何内容
请帮忙
感谢这是因为canvas的宽度和高度设置非常有趣,要让它按预期播放,请直接在元素和样式上设置宽度和高度:
<canvas id="myCanvas" width=500 height=240 style='width:500px;height:240px'></canvas>
这是因为画布的宽度和高度设置很有趣,要让它按预期播放,请直接
我正在评估canvas库,我的需求是:
我想使它容易建立好看的按钮,移动
我可以轻松捕捉事件的周围和上面。按钮图
帮手会很酷的
我将构建一个系统,供其他人用于创建动画
结合移动测试、图像和声音的场景。我永远不会
我自己画复杂的形状,我可能画的最多的是
一些文本周围的按钮
我不想与低级机械完全隔绝
每帧图形回调的。当然了,但是
我将与网络音频API同步,并希望
访问超紧定时控制
我对相当低级别的动画脚本非常满意,我不希望它是一种将画布改变为某种形式的东西
完全不同的范式,但不确定这一点
需要在iO
我正在构建一个图形实用程序,它显示一个包含大量数据的相当大的图形。
我希望能够支持的一件事是在我的应用程序的不同面板中同时拥有多个数据视图
我画了一幅画,试图证明我的意思。假设我已经使用动能在背景中构建了渐变图像
我想能够抓取显示的部分,以红色和绿色同时概述的部分,而不必重建整个图像
var stage1 = new Kinetic.Stage({
container: 'container1',
width: somewidth,
height: someheight
});
我试图使用chart.js在折线图中隐藏工具提示
我尝试过这个代码,但他们从不隐藏
Chart.defaults.global.tooltipenabled = false;
您可以在图表的此处看到所有代码:
谢谢 您的属性名称错误。应该是
Chart.defaults.global.showTooltips = false;
小提琴-对我来说showTooltips=false不起作用
我的解决办法是:
Chart.defaults.global.tooltips.enabled =
我正在使用canvg在画布上渲染SVG,并从浏览器下载为PNG。这是一个有效的打字脚本代码
基于他们的文档的代码片段
const canvas = new OffscreenCanvas(this.width, this.height);
const ctx = canvas.getContext('2d');
const v = await Canvg.from(ctx!, this.svg.innerHTML, presets.offscreen());
/
我正在使用以下代码渲染混合器模型(刚开始时的默认立方体模型),但没有显示任何内容:
<html>
<head>
<title>Test page for the </title>
<meta name="viewport" content="width=device-width, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0">
我对使用HTML5Canvas和KineticJS非常陌生,所以如果这是我的一个明显错误,请原谅我
我的问题是,我使用的是由形状组成的组。这些形状使用drawFunc来实现绘图的魔力。都是好东西。但是,我注意到在Shape调用中所做的设置似乎覆盖了“全局”上下文设置。我创建了一个图标,在标准的“KineticJS拖放组”中添加了一些十字(形状),这一点最能说明问题
您会注意到,除了在最后一个十字(形状)之后创建的最后一个设置之外,在彩色框的设置上的形状戳记中进行的笔划和填充设置
这感觉像是某种延
有很多页面告诉我如何在画布上拖动形状或图像,甚至拖动。但是,我想以可点击的HTML URL(超链接)的形式拖动文本,也就是说,在一个画布上分组多个文本,以给人一种相关性的印象(链接彼此越近,它们之间的关系就越密切。(作为HTML链接,只有它们的标题可见-实际的URL将被隐藏)
出现的第一个问题是,我是否可以使用一次左键单击来激活链接(将我带到另一个页面)或者将其解释为拖动的开始。可能我必须使用不同的热键,例如右键单击以拖动,左键单击以激活。我不希望必须双击才能激活-额外的单击会变得单调乏味
我在
这是一个图像编辑器,我正在工作,但它有一个错误。假设您创建了一个15倍缩放的图像,当您更改缩放时,图像将丢失。为什么会这样?补救办法是什么
HTML:
提前感谢如果你想放大画布,这意味着你必须用缩放重新绘制
因此,与其在画布上绘制像素,不如在画布上单击鼠标右键,画布由纯像素组成。。。您需要首先创建像素网格的一些表示形式
var gridOfPixels = [];
假设您现在对静态大小没有问题。设为8x8像素。开始时,您希望初始化阵列:
for (var i=0; i < 8*8; i+
如上图所示,图像B位于图像A的后面,然后我将图像A设置为可选:false
我的问题是,是否可以允许用户移动图像B,同时将图像B分层到图像a后面?您要查找的设置是preserveObjectStacking。初始化画布时将其设置为true,以防止对象选择修改图层顺序
var canvas = new fabric.Canvas('canvas', {
preserveObjectStacking: true,
});
添加preserveObjectStacking后,我无法移动图像B,但我
我正在处理实时网络摄像头图像帧,以使用javascript提供运动/遥测数据来控制基于web的游戏,为此,我使用画布上下文来获取字节数据。。。context.getImageData(
有没有其他更有效的方法可以从画布读取数据
从网络摄像头抓取帧到画布需要不到我帧处理时间的2%(0.11ms),但运行getImageData将其置于可读状态需要76%的时间(3.67ms)
如果我提高图像分辨率,我将图像处理为10像素,我只看到处理增加15%(4.04ms)G.TimaGeDATA的一次性性能开销
这是我的密码:
var canvasObject=document.getElementById(“editorCanvas”);
//将画布设置为与div相等的大小
$(canvasObject).width($(“#canvasContainer”).width();
$(canvasObject).height($(“#canvasContainer”).height();
var canvas=new fabric.canvas('editorCanvas'{
背景颜色:“白色”,
选
我想知道如何使用ReasonML中的bs webapi和Canvas2d接口创建和设置填充样式
我想我可能需要的定义是:
但我很难理解它
我以前曾将其用作示例源,但我认为自该项目编写以来,bs webapi已经发生了变化。至少以下行按照示例建模:
Canvas2d.fillStyle(ctx, "rgba(0,255,255,255)");
给我这个错误:
Error: This function has type
Webapi.Canvas.Canvas2d.t =>
上一页 1 2 3 4 5 6 ...
下一页 最后一页 共 14 页