如何使用HTML5和CSS3创建画布框悬停效果
我正在尝试使用HTML5和CSS3开发一个画布框悬停效果,但我无法实现这一点。我想做出如下效果:如何使用HTML5和CSS3创建画布框悬停效果,html,css,canvas,Html,Css,Canvas,我正在尝试使用HTML5和CSS3开发一个画布框悬停效果,但我无法实现这一点。我想做出如下效果: 当用户未悬停时 当用户悬停时 i、 e.当用户使用HTML5画布悬停在蓝色三角形上时,我如何制作蓝色三角形并将其变成蓝色正方形?给你: 笔记: 我们可以使用document.getElementById(“canvasid”).getContext(“2d”)在画布上绘制上下文每当我们想要绘制时,我们都会引用这个上下文(我们将它存储在变量ctx),因为所有的绘图函数都存储在那里 我们也知道我们
- 当用户未悬停时
- 当用户悬停时
- 我们可以使用
document.getElementById(“canvasid”).getContext(“2d”)在画布上绘制上下文代码>每当我们想要绘制时,我们都会引用这个上下文(我们将它存储在变量
),因为所有的绘图函数都存储在那里ctx
- 我们也知道我们只会用蓝色绘制,所以我们在做其他事情之前先设置填充颜色
。如果您想要不同的颜色,可以使用十六进制代码,如:ctx.fillStyle=“blue”
ctx.fillStyle=“#0000ff”代码>
- 两个不同的函数:一个用于绘制蓝色三角形(这是正常状态),另一个用于绘制蓝色矩形(悬停状态)。canvas元素上的
和onmouseover
事件调用这些函数。页面加载时也会调用普通函数onmouseout
- 在正常状态下,我们首先使用
ctx.moveTo(0,0256256)告诉画布从右下角开始代码>
- 然后,我们可以使用
从当前位置绘制路径。这就像Illustrator中的ctx.lineTo(x,y)
- 为了使悬停时整个东西变成蓝色(对于悬停函数),我们使用
绘制一个覆盖整个区域的蓝色矩形ctx.rect(0,0256256)
- 如果我们没有在mouseout上删除这个
,那么我们将在正方形的顶部绘制一个蓝色三角形,它将保持为蓝色。为了避免这种情况,我们使用,
删除所有画布内容并重新开始。这是在正常功能中运行的ctx.clearRect(0,0256256)
- 真的吗?只需使用
:悬停
选择器即可
canvas:hover {
画布:悬停{
背景:金;
}
欢迎来到Stackoverflow!在这里,我们帮助解决现有代码的问题,而不是在没有代码的情况下创建代码。Canvas可以满足您的需要,但需要一些javascript才能实现。相反,也许你可以使用CSS和两个不同的图像来创建相同的悬停效果。我不知道如何在下面的图像上使用CSS进行图形再现。如果使用CSS来创建图像,则可以创建一个悬停图像。是的,它的文件,同样的,内线怎么能画得像我上面的图片一样好呢?它很完美,但你们还是用同样的方式画。到