이미지 그룹 사이에 트리 계층 적 관계가 있습니다. 이미지를 부모 노드 이미지보다 작은 자식 노드 이미지가있는 캔버스 태그의 트리 구조로 나타내려면 모든 이미지가 마우스 오버시 일부 값으로 확장되어야합니다.html5 canvas 태그에서 이미지의 계층 구조 트리 구조를 생성 하시겠습니까?
javascript 함수를 사용하면 확대/축소 효과를 조정할 수 있지만 이미지가 표시 되더라도 마우스 이벤트 수신기 기능이 제대로 작동하지 않게되고 mouseover 및 mouseout이 감지되지 않습니다. 나는 디버깅을 위해 사용한 경고 메시지를 얻지 못했다. 이것은 단지 테스트 코드입니다 : -
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 * element *에서만 작동합니다. 이처럼 작동하도록하려면 커서와 이미지의 위치를 감지해야합니다. – pimvdb
이미지 요소로 html 이미지 태그를 의미합니까? 그렇다면 캔버스 태그로 작업 할 수 있습니까? – ajish
예,'new Image'는 기본적으로 이미지 태그를 만듭니다. 이 태그를 캔버스에 배치 할 수는 없습니다. 캔버스에 시각적 표현 만 그릴 수 있습니다. 당신은'canvas.onmouseover'를 사용하고 커서가 어떤 수학을 가진 이미지에 있는지를 결정해야합니다. – pimvdb