0

html5の初心者です。特定のバーにマウスを合わせるとメッセージが表示されるように、cssまたはjavascriptを使用してマウスオーバー機能を含めたいと思います。私はいくつかのAPIに行きたくありません。plsは私を助けます。これが私のコードです。

<!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

2つのオプションがあります。

  1. 描画可能な形状をオブジェクトに抽象化し、それらをマウスイベントにバインドするための優れたメソッドを提供するKineticJSのようなライブラリを使用します。これには、側で必要な作業を最小限に抑えるという利点があります。したがって、車輪の再発明を行うことなく、機能自体に集中することができます。

  2. 誰かが上記のようなライブラリを作成したときと同じように、独自のソリューションをロールします。関連する機能(特にx、y、w、h)を含む形状(この場合はある種のBarオブジェクト)の抽象化を設計し、キャンバス上mousemove-eventですべてのバーをブルートフォース攻撃して、イベントマウスかどうかを計算します位置がバー内かどうか。次に、それに応じて行動します。たとえば、新しい色でバーを再描画します。もちろんmouseout、同様に処理する必要があります(色を戻すなど)。

于 2012-07-19T12:17:25.197 に答える