- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用Processing.js,可以使用jQuery 1.3.2,并针对Firefox 3.5、Safari 4和IE 8(通过ExplorerCanvas)。 Processing.js 网站称“将 Explorer Canvas 与Processing.js 一起使用通常会导致中等复杂的可视化的帧速率无法使用。”好吧,在这种情况下,不需要动画,只需一些简单的草图,因此帧速率不是问题。每次表单中的输入数据发生更改时,我只需要重绘()。我 99% 都同意,只需要一个灵感就能控制 IE!
keyPressed() 可以完美地响应输入字段中的更改,但不幸的是,复选框和选择字段中的更改的重绘会延迟,直到按下实际的键为止。 mousePressed() 仅在 Canvas 内单击时才会导致更新。用户体验有点不稳定和困惑。如何让草图在任何键盘/鼠标事件上立即重绘?
代码
在页面的主 JavaScript block 中,我设置了一个用于传递 JSON 数据的对象,该数据依赖于表单和Processing.js 之间的选择字段,并且还作为放置 IE 标志的位置:
window.common = {};
当浏览器是 IE 时,我使用“条件注释”脚本在“通用”对象中放置了一个 bool 值:
<!--[if IE]>
<script type="text/javascript">
window.common.IE = true;
</script>
<![endif]-->
为了完整起见,“通用”对象以这种方式接收 JSON 数据,使用精彩的 jQuery getJSON 函数:
$.getJSON(xhr_url, function(json, status){
/*
This is the equivalent of writing either
"window.common.global_d_b = json[d];" or
"window.common.global_d_c = json[d];" for
each property, such as "d," in the json object,
and subscripts "_b" or "_c".
*/
for (var property in json) {
window.common['global_' + property + subscript] = json[property];
}
});
Processing.js 设置如下所示:
flag_for_IE = window.common.IE;
void setup()
{
size(int(W), int(H)); // Canvas size as set above
frameRate(4); // Refresh rate in fps for FF & Safari
stroke(darkSteelGrey); // Set default linework color
fill(medSteelGrey); // Set default fill color
background(lightBlue); // Set background color
if (flag_for_IE) {
noLoop(); // Stop looping for IE.
}
}
绘制循环像这样开始,直接从表单获取所需的参数数据:
void draw() {
/* ***** ORDINARY DYNAMIC DATA FROM INPUT AND SELECT ELEMENTS ***** */
/*
Some jQuery JavaScript is used here to get data provided by the user. Where
necessary, invalid form entries are set equal to zero so the interactive
sketching will be smoother.
*/
var tp = float($('#id_tp').val()); // End plate thickness
tp = isNaN(tp) ? 0.0 : tp;
var bp = float($('#id_bp').val()); // End plate width
bp = isNaN(bp) ? 0.0 : bp;
var db = float($('#id_db').val()); // Bolt diameter
当表单中的更改启动 AJAX 请求时,数据将进入 draw() 循环,如下所示:
d_b = window.common.global_d_b;
tf_b = window.common.global_tf_b;
draw() 循环之后是条件重绘逻辑:
/* Redraw control for IE. */
if (flag_for_IE) {
redraw();
void keyPressed() {
redraw();
}
void mousePressed() {
redraw();
}
}
最佳答案
要重绘复选框和选择字段,您只需将它们绑定(bind)到 change使用 jQuery 的事件。
$('#formid').find(':input').change(redraw);
关于jquery - 使用 noLoop() 时,Processing.js 更好的基于事件的 redraw(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2140969/
我有一个带有 events.load 函数的图表,该函数根据图表属性绘制一些线条。 加载功能完全按照我的意愿工作,但我想在每次重新绘制图表时删除并重新绘制线条(例如隐藏系列)。 我在 chart.ev
我有一个基本的 UWP 应用程序,其中嵌入了 WebView,可呈现相当大的 HTML 文档(最多 500 个信纸大小的打印页面)。 我想添加对打印该 HTML 文档的支持。这是我的方法: 为了支持分
每次我选择一个 m 适配器时,我都想重新绘制我的图表,第一次绘制的图表看起来很完美,但是当我选择一个并返回时,看起来它绘制了两次相同的图表。 这是我的源代码: public class MainA
您好,我有一个下拉菜单,每当我更改下拉菜单中的选项时,我想更改 Canvas 中的内容...例如 var paper = Raphael("myDivID",400,400); function sm
我已经编写了一个带有 NSview 和按钮的窗口。当程序启动时,窗口中会出现一个点。按下按钮后,应该会出现另外三个点,但代码不会重绘窗口。如果我在绘图函数内设置断点,我发现代码仅在绘图函数中第一次停止
我正在尝试将属性更改为自定义 LinearLayout 类,我将选项设置为类: MyBuilder option = new MyBuilder.Builder() .image(...) .setC
我正在为我的应用程序使用一些矢量图形 (.png)。在 photoshop 中,我可以放大并始终看到简单几何形状(如圆形)的完美清晰边界。但是,在我的 iPhone 上,我的相同图形看起来参差不齐且粗
我是 cocoa 新手。我以为我可以将 UITableViewCell 背景 View 设置为我自己的自定义子类,以便在单元格的背景中显示加载栏,但当我想更新该栏时,调用 setNeedsDispla
CoreData 返回 BOOL 值,根据该值我在 UITableViewCell accessoryView 上绘制了一个 UILabel。问题是 UILabel 也在它根本不应该出现的单元格上重复
我正在编写一个从 HealthKit 获取步数数据并在屏幕上显示统计数据的应用程序。我有一个带有委托(delegate)协议(protocol)功能的 viewcontoller: func user
我目前正在使用新版本的 OpenLayers OL3 升级 OpenLayers 客户端版本 2.13.1。我的设置包括作为 WMS map 服务器的 Mapserver 和前面提到的 OpenLay
我正在使用 morris.js 图表和 Bootstrap slider 。 我想做什么: 如果移动了 slider ,我想在图表中 slider 值的位置插入一条事件线。没什么特别的。 问题: 设置
本文整理了Java中gov.nasa.worldwind.WorldWindow.redraw()方法的一些代码示例,展示了WorldWindow.redraw()的具体用法。这些代码示例主要来源于G
我正在使用 Highcharts 3.0.2 我有一个 div#chart 和两个 js 变量,var options1 = {...}, options2 = {...}。它们包含不同的 highc
我正在使用 Highcharts,我想在用户点击图表标签时触发一些事件。只要我不重绘,它就可以正常工作。当我使用 chart.redraw() 时,不再触发点击事件这是一个 fiddle :https
我有一个带有图片框的表单,它显示图片和在图片框的 Paint 事件处理程序中绘制的一些叠加层。叠加层根据鼠标移动更新自身(基本上改变叠加层不同部分的不透明度)。 目前,我正在从鼠标移动处理程序调用 p
我正在使用基于 View 的 NSTableView,它使用其中包含多个控件的自定义单元格 View 。其中一个控件是纯图像 NSButton,它要么显示复选标记图像,要么根本不显示图像。此外,当我将
我正在制作条形图。它显示了各州的流感疫苗接种率。通过单击图例,您可以在每个州的人口统计之间切换,太棒了! 但是,需要双击图例才能重绘。单击一次即可成功消除条形,但需要第二次单击才能重新绘制它们。 工作
我有一个向导(org.apache.wicket.extensions.wizard.Wizard),它有一个AjaxButton作为其下一个按钮。 我正在对下一个按钮的 onSubmit() 方法执
我是 angularjs 新手,正在尝试创建我的第一个指令。我正在创建一个指令来将 Charts.js2.0(beta) 加载到我的应用程序中。 我有 2 个由 Angular-route 管理的 V
我是一名优秀的程序员,十分优秀!