html5操作画布中的元素

html5操作画布中的元素,html,Html,我想知道如何将图像加载到HTML5画布中。具体地说,我想要一个脚本,在鼠标移到画布上时,在原始图像淡出的情况下,在画布上交换一个图像。我是HTML5新手,有以下代码: <canvas id="myCanvas" width="500" height="500" /> <script type="text/javascript"> function drawbackground() { char.fillStyle="blue"; c

我想知道如何将图像加载到HTML5画布中。具体地说,我想要一个脚本,在鼠标移到画布上时,在原始图像淡出的情况下,在画布上交换一个图像。我是HTML5新手,有以下代码:

<canvas id="myCanvas" width="500" height="500" />
<script type="text/javascript">
    function drawbackground() {
        char.fillStyle="blue";
        cxt.fillRect(0,0,500,500);
    }

        var charx=0;
        var chary=0;
        var c=document.getElementById("myCanvas");
        var cxt=c.getContext("2d");
        var char=c.getContext("2d");
        drawbackground();
        char.fillStyle="black";
        var imgObj = new Image();
        imgObj.src='map1.png';
        imgObj.onload = function () {           
        // Draw the image on the canvas
        char.drawImage(imgObj, 10, 10);
        }       

</script>

这是正确的方向吗?

您可以在没有HTML5画布的情况下实现这一点。要在鼠标上交换图像,最容易使用名为jQuery的JavaScript框架,请在此处免费获取它:

使用jQuery,您只需执行以下操作:

首先,创建一个图像标记

<img src="image1.png" id="myimage" />
上面的示例将更改鼠标悬停时的图像。要实现淡入淡出效果,您需要做更多的工作:您可以在这里了解有关jQuery效果的更多信息:

我将为效果创建两个图像,并将css属性设置为“隐藏图像2”,将每个图像放置在另一个图像上

<div id="imageHolder">
<img src="image1.png" id="myimage1" />
<img src="image2.png" id="myimage2" style="display:none" />
</div>
有很多方法可以实现这一点,上面的代码没有经过测试,但应该为您快速创建所需效果提供基础

<div id="imageHolder">
<img src="image1.png" id="myimage1" />
<img src="image2.png" id="myimage2" style="display:none" />
</div>
$("#imageHolder").mouseover(function() {
  $("#image1").fadeOut();
  $("#image2").show();
});

   $("#imageHolder").mouseout(function() {
      $("#image1").fadeIn();
      $("#image2").hide();
    });