admin管理员组

文章数量:1278822

Is there a way I can make an HTML5 canvas the background of a web page I am making and place all the elements on top of it.

So it acts like the <body>?

I tried doing this with z-index and positioning the elements on top, but then they were click-able or focus-able. I need them to still be functioning, but the canvas to also be clickable just in the background and not clickable where there are elements over it.

Is there a way I can make an HTML5 canvas the background of a web page I am making and place all the elements on top of it.

So it acts like the <body>?

I tried doing this with z-index and positioning the elements on top, but then they were click-able or focus-able. I need them to still be functioning, but the canvas to also be clickable just in the background and not clickable where there are elements over it.

Share Improve this question edited Jun 9, 2013 at 5:46 alex 491k204 gold badges889 silver badges991 bronze badges asked Jun 9, 2013 at 5:41 JayGatzJayGatz 2711 gold badge9 silver badges18 bronze badges 1
  • See also: stackoverflow./questions/3397334/… – Jonathan Commented Mar 29, 2017 at 23:10
Add a ment  | 

2 Answers 2

Reset to default 9

Just set the <canvas>'s z-index to -1. If your canvas is covered by containers on top, simulate custom events using createEvent.[1]

Demo: http://jsfiddle/DerekL/uw5XU/

var canvas = $("canvas"),  //jQuery selector, similar to querySelectorAll()
//...

function simulate(e) {
    var evt = document.createEvent("MouseEvents");
    evt.initMouseEvent("mousemove", true, true, window,
        0, e.screenX, e.screenY, e.clientX, e.clientY, false, false, false, false, 0, null);
    canvas[0].dispatchEvent(evt);
}

$("body > *").each(function () {
    this.addEventListener("mousemove", simulate);
});

Sure that would be possible with z-index, most probably the canvas will not be clickable because you're working with a container that's on top of it. So even if there appears to be no element the container is still there which prevents you from clicking on the canvas.

本文标签: javascriptMake ltcanvasgt the background of an html documentStack Overflow