在一組圖像之間存在一個樹形層次關係,我希望圖像在canvas標記中被表示爲一個樹形結構,子節點圖像小於父節點圖像,並且所有圖像都應該在mouseover上放大一些值。在html5畫布標籤中創建圖像的層次樹結構?
setscale和翻譯javascript函數讓我儘可能縮放效果,但我不能讓鼠標事件偵聽器功能正常工作,鼠標懸停和鼠標沒有被檢測到,雖然圖像顯示。我沒有收到我用於調試的警報消息。這只是一個測試代碼: -
function loadImages(sources, callback){
var images = {};
var loadedImages = 0;
var numImages = 0;
// get num of sources
for (var src in sources) {
numImages++;
}
for (var src in sources) {
images[src] = new Image();
images[src].onload = function(){
if (++loadedImages >= numImages) {
callback(images);
}
};
images[src].src = sources[src];
}
}
window.onload = function(){
var canvas = document.getElementById("myCanvas");
var context = canvas.getContext("2d");
var destX = 20;
var destY = 20;
var destWidth = 200;
var destHeight = 137;
var sources = new Array();
sources[0]="darth-vader.jpg";
sources[1]="darth-vader.jpg";
var imageObj = new Image();
loadImages(sources, function(images){
context.drawImage(images[0], destX, destY, destWidth, destHeight);
images[0].onmouseover=function()
{
alert('1');
}
images[0].onmouseout=function()
{
alert('2');
}
context.drawImage(images[1], destX+200,destY, destWidth, destHeight);
images[1].onmouseover=function()
{
alert('3');
}
images[1].onmouseout=function()
{
alert('4');
}
});
};
您正在畫布上繪製圖像的副本。 'onmouseover'屬性只能在image * *元素上工作,而你沒有看到它。爲了得到像這樣的工作,你必須實現檢測光標和圖像的位置。 – pimvdb 2011-12-27 14:49:30
by image element你的意思是html圖片標籤?如果是的話,我可以得到與畫布標籤一起工作嗎? – ajish 2011-12-27 15:03:35
是的,'新的圖像'基本上創建一個圖像標籤。你不能「只」將這個標籤放在畫布上。您只能在畫布上繪製可視化表示。你必須使用'canvas.onmouseover'並確定光標是否在一些數學圖像中。 – pimvdb 2011-12-27 15:22:13