0

我是 html5 的新手。我想通过 css 或 javascript 包含一些鼠标悬停功能,以便当我将鼠标悬停在特定栏上时,它必须显示一些消息。我不想去一些 api。请帮帮我。这是我的代码。

<!doctype html>
<html>
    <head>
        <script type="text/javascript">
            window.onload=function(){
                var canvas=document.getElementById('mycanvas');
                var ctx=canvas.getContext('2d');
                var value=[180,140,30,340,50,90];
                var width=50;
                var currx=30;
                ctx.fillStyle="red";
                var i = 0;
                var interval = setInterval(function(){
                    if (i == value.length){
                        clearInterval(interval);
                        return;
                    }
                    var h=value[i];
                    ctx.fillRect(currx,canvas.height-h,width,h);
                    currx+=width+10;
                    i++;
                }, 2000);console.log(interval);
            };
        </script>
    </head>
    <body>
        <canvas id="mycanvas" height="400" width="400" style="border:1px solid #c3c3c3;">
    </body>
</html>

jsFiddle 上的演示

4

1 回答 1

1

你有两个选择:

  1. 使用KineticJS之类的库,它将可绘制形状抽象为对象,并提供漂亮的方法将它们绑定到鼠标事件。这样做的好处是可以最大限度地减少您身边所需的工作,因此可以让您专注于功能本身,而不是重新发明轮子。

  2. 推出你自己的解决方案,就像某人在创建上述库时所做的那样。为包含相关特征(特别是 x、y、w、h)和画布的形状(在本例中为某种 Bar 对象)设计一些抽象mousemove-event,蛮力通过所有条形并计算事件是否鼠标位置是否在一个小节内。然后采取相应的行动,例如用新颜色重新绘制条形图。当然,您也必须处理mouseout(将其着色等)。

于 2012-07-19T12:17:25.197 回答