我曾经在一个名为'BeautyTips'的jQuery插件上工作,它运行得很好.但是,因为我已经安装了IE 8,这个插件停止工作,因为它需要Excanvas来让IE绘制矢量,图像等.
我试图下载更新版本的Excanvas,但它根本不起作用......
想象一下,为拥有3000间客房的大型楼宇平面图构建Google地图.
我需要显示多达3000个矩形(最好的也是能够渲染随机多边形,但此时,这不是最大的问题).它们中的每一个都应该附加事件,例如鼠标悬停和单击,这将对页面上的其他dom元素产生一些影响.我还需要能够放大和缩小.
我知道我可以用SVG(Raphael.js),普通div渲染或画布来做.
我想知道是否有人有具体的建议来为我想要建立的东西.它需要在最慢的浏览器上足够快地渲染(大约1秒左右).(IE8,Firefox 3.6,希望IE7,即使我没有做太多梦想......)
谢谢你的帮助,尼古拉斯.
PS:到目前为止,我经历过使用Raphael.js在IE8上渲染3000个矩形需要长达7秒,这相当慢.它似乎也比在IE8上渲染普通div快6倍.
Excanvas"for enternet Explorer"适用于预定义的canvas元素.但是当在脚本中动态创建canvas元素时,它将无法工作......
有任何想法吗??
我已经逐渐喜欢paper.js但是在意识到它不支持IE8后,我想知道是否有可能让paper.js与excanvas一起工作?有人测试过这个并且有可用的例子吗?
谢谢.
好吧,我以为我的整个setTimeout事情很完美,但我似乎非常错误.
我正在使用excanvas和javascript绘制我的家庭状态的地图,但是绘图程序会扼杀浏览器.现在我被迫迎合IE6,因为我是一个大型组织,这可能是缓慢的很大一部分.
所以我认为我要做的是构建一个名为distributedDrawPolys的程序(我可能在那里使用了错误的单词,所以不要专注于分布式单词),这基本上会从全局数组中弹出多边形以便绘制50他们一次.
这是将多边形推送到全局数组并运行setTimeout的方法:
for (var x = 0; x < polygon.length; x++) {
coordsObject.push(polygon[x]);
fifty++;
if (fifty > 49) {
timeOutID = setTimeout(distributedDrawPolys, 5000);
fifty = 0;
}
}
Run Code Online (Sandbox Code Playgroud)
我在该方法结束时发出警报,它几乎在一秒钟内运行.
分布式方法如下:
function distributedDrawPolys()
{
if (coordsObject.length > 0) {
for (x = 0; x < 50; x++) { //Only do 50 polygons
var polygon = coordsObject.pop();
var coordinate = polygon.selectNodes("Coordinates/point");
var zip = polygon.selectNodes("ZipCode");
var rating = polygon.selectNodes("Score");
if (zip[0].text.indexOf("HH") == -1) {
var lastOriginCoord = [];
for (var …
Run Code Online (Sandbox Code Playgroud) 例如,我在页面中有一个带有某种路径的画布.它是由javascript以这种方式创建的:
var context = $('#some_canvas').getContext('2d');
context.beginPath();
context.lineWidth = 5;
context.strokeStyle = '#000000';
context.moveTo(0, 0);
context.lineTo(100, 100);
context.stroke();
Run Code Online (Sandbox Code Playgroud)
有没有办法让这个命令后出现的路径有一些平铺的背景图像?
excanvas ×6
canvas ×4
javascript ×4
beautytips ×1
census ×1
dom ×1
drawing ×1
html ×1
jquery ×1
paperjs ×1
raphael ×1
settimeout ×1
svg ×1
xml ×1