2013-02-07 104 views
0

即使canvas元素放置在網頁內容之前,它顯示在最上面。畫布出現在內容

<canvas id="cnv"></canvas> 
<div id="content"> 
    blah blah 
    <p> 
     blahs 
    </p> 
</div> 

一個解決辦法是設置z-index爲-1畫布,但會被觸發停止mousemove

爲什麼帆布在上面?我怎樣才能把它放在內容的後面,同時還能夠觸發mousemove?

http://jsfiddle.net/YUx82/

注意:我不允許改變的唯一CSS是一個在畫布。
另一種解決方案是將z-index設置爲-1,然後以某種方式將mousemove從文檔傳遞到畫布。

回答

1

試一下:

$("#cnv").on("transferMouseCoordinates", function(e, x, y){ 
    // voila! 
}); 

$(document).on("mousemove", function(e) { 
    // use e.pageX and e.pageY to get mouse position 
    $("#cnv").trigger("transferMouseCoordinates", e.pageX, e.pageY); 
}); 
+0

還要注意的是固定的是不安全的移動設備上使用,使用絕對代替。 – mika

+0

但絕對位置不會產生與固定位置相同的效果... – Cristy

+1

我添加了觸發器來顯示事件的使用情況,但您可以直接調用該函數而不使用事件。 $(document).on(「mousemove」,function(e){doWhatYouGotToDo(e.pageX,e.pageY);}); – mika