如何使用HTML5和CSS3创建画布框悬停效果

如何使用HTML5和CSS3创建画布框悬停效果,html,css,canvas,Html,Css,Canvas,我正在尝试使用HTML5和CSS3开发一个画布框悬停效果,但我无法实现这一点。我想做出如下效果: 当用户未悬停时 当用户悬停时 i、 e.当用户使用HTML5画布悬停在蓝色三角形上时,我如何制作蓝色三角形并将其变成蓝色正方形?给你: 笔记: 我们可以使用document.getElementById(“canvasid”).getContext(“2d”)在画布上绘制上下文每当我们想要绘制时,我们都会引用这个上下文(我们将它存储在变量ctx),因为所有的绘图函数都存储在那里 我们也知道我们

我正在尝试使用HTML5和CSS3开发一个画布框悬停效果,但我无法实现这一点。我想做出如下效果:

  • 当用户未悬停时
  • 当用户悬停时
i、 e.当用户使用HTML5画布悬停在蓝色三角形上时,我如何制作蓝色三角形并将其变成蓝色正方形?

给你:

笔记:
  • 我们可以使用
    document.getElementById(“canvasid”).getContext(“2d”)在画布上绘制上下文每当我们想要绘制时,我们都会引用这个上下文(我们将它存储在变量
    ctx
    ),因为所有的绘图函数都存储在那里
  • 我们也知道我们只会用蓝色绘制,所以我们在做其他事情之前先设置填充颜色
    ctx.fillStyle=“blue”
    。如果您想要不同的颜色,可以使用十六进制代码,如:
    ctx.fillStyle=“#0000ff”
  • 两个不同的函数:一个用于绘制蓝色三角形(这是正常状态),另一个用于绘制蓝色矩形(悬停状态)。canvas元素上的
    onmouseover
    onmouseout
    事件调用这些函数。页面加载时也会调用普通函数
  • 在正常状态下,我们首先使用
    ctx.moveTo(0,0256256)告诉画布从右下角开始
  • 然后,我们可以使用
    ctx.lineTo(x,y)
    从当前位置绘制路径。这就像Illustrator中的
  • 为了使悬停时整个东西变成蓝色(对于悬停函数),我们使用
    ctx.rect(0,0256256)
    绘制一个覆盖整个区域的蓝色矩形
  • 如果我们没有在mouseout上删除这个
    ,那么我们将在正方形的顶部绘制一个蓝色三角形,它将保持为蓝色。为了避免这种情况,我们使用
    ctx.clearRect(0,0256256)
    删除所有画布内容并重新开始。这是在正常功能中运行的

    • 真的吗?只需使用
      :悬停
      选择器即可

      canvas:hover {
      
      画布:悬停{
      背景:金;
      }

      欢迎来到Stackoverflow!在这里,我们帮助解决现有代码的问题,而不是在没有代码的情况下创建代码。Canvas可以满足您的需要,但需要一些javascript才能实现。相反,也许你可以使用CSS和两个不同的图像来创建相同的悬停效果。我不知道如何在下面的图像上使用CSS进行图形再现。如果使用CSS来创建图像,则可以创建一个悬停图像。是的,它的文件,同样的,内线怎么能画得像我上面的图片一样好呢?它很完美,但你们还是用同样的方式画。到