【问题标题】:html5 use canvas and script on multiple pageshtml5 在多个页面上使用画布和脚本
【发布时间】:2016-01-22 13:29:55
【问题描述】:

首先,我是一个真正的 html 新手(实际上是编程),我是法国人,所以请原谅我的英语。 好吧,我正在尝试建立一个包含多个 html 页面的网站,我希望所有页面的背景都成为噪音发生器:

function noise(ctx) {

    var w = ctx.canvas.width,
    h = ctx.canvas.height,
    idata = ctx.createImageData(w, h),               // create image data
    buffer32 = new Uint32Array(idata.data.buffer),   // get 32-bit buffer
    len = buffer32.length,
    i = 0;

    for(; i < len;)
        buffer32[i++] = ((255 * Math.random())|0) << 24; // alter alpha channel

    ctx.putImageData(idata, 0, 0);
}

http://jsfiddle.net/AbdiasSoftware/dEya9/

我设法使它与第一页上的 id 元素一起工作,但它不会显示在任何其他页面上。我知道一个 id 不应该被多次使用,但我找不到让这个背景一直工作的方法。

如果您需要更高的精度,请告诉我。 谢谢

【问题讨论】:

  • 由于您已经设置了&lt;canvas&gt; 动画,您可能希望将其转换为gif 图像,然后,都使用此图像作为一般背景,并保存循环计算对于每一页。见codecartooning.tumblr.com/post/40840548952/…
  • “我知道一个 id 不应该被多次使用”,只能在同一个页面上。如果您的意思是您认为您应该只在整个网站流程中使用相同的元素 ID,那么您就误解了该规则。您能否提供有关您网站结构的更多信息?
  • 您好,感谢您的回答。我终于在一位实际上是编程老师的朋友的帮助下成功了。这不是身份问题。我们没有发现我犯了什么错误,但我们只是将第一页复制了几次并将其他页面的内容粘贴到副本中,现在它运行良好!

标签: javascript css html canvas


【解决方案1】:

&lt;body onload='noise(ctx)'&gt; 在您希望运行的每个页面上。确保 JS 文件也链接到该页面的标题中,并且存在带有 id 的元素。

【讨论】:

    猜你喜欢
    • 2011-04-30
    • 1970-01-01
    • 2013-08-24
    • 1970-01-01
    • 1970-01-01
    • 2016-06-19
    • 1970-01-01
    • 2016-04-29
    • 1970-01-01
    相关资源
    最近更新 更多