天天看點

圓點自動跟随滑鼠移動 - MrZWJ

圓點自動跟随滑鼠移動

<canvas>繪制思路:在畫布上繪制一個圓點,在移動滑鼠時用背景圖覆寫上一次的圖檔,然後再在這張背景圖上繪制一個原點,利用定時器每隔10ms進行一次重新整理
<!doctype html>
<html>
<head>
    <title>test</title>
    <meta charset="UTF-8">
</head>
<body>
<canvas id="canvas" Style="background: green; border:solid black thin" width="600px" height="500px"></canvas><!--畫布-->
<script>
    var canvas = document.getElementById("canvas");
    var context = canvas.getContext(\'2d\');
    var img = new Image();//建立一個圖檔,用來覆寫上一次滑鼠移動産生的圖檔
    img.src = "greenCanvas.png";
    var x=100,y=100;
    setInterval(function () {//設定定時器
        context.drawImage(img, 0, 0);//繪制背景圖
        context.beginPath();
        context.arc(x, y, 10, 0, Math.PI * 2, false);
        context.fill();//繪制圓點
    }, 10);

    canvas.onmousemove = function (event) {//獲得滑鼠的位置
        x = event.offsetX;
        y = event.offsetY;
    };
</script>
</body>
</html>
效果圖:      
圓點自動跟随滑鼠移動 - MrZWJ

注:次數這個點是跟着滑鼠進行移動的,由于隻能上傳圖檔而不能上傳視訊,是以就隻能有這個效果圖了

two.js繪制思路:div當作畫布,先在div上畫一個圓,在two.js的bind方法中傳入update事件和方法,随着滑鼠的移動持續改變圓的圓心坐标,達到圓心跟随滑鼠移動的效果

源碼:

<!doctype html>
<html>
<head>
    <title>test</title>
    <meta charset="UTF-8">
</head>
<body>
<div id="div" style="border:1px solid black;width:500px;height:500px"></div>
<script src="two.js"></script>
<script>
    var div = document.querySelector("#div");
    var two = new Two({
        width: 500,
        height: 500
    }).appendTo(div);
    var circle = two.makeCircle(100, 100, 20);
    circle.fill = "black";

    two.bind("update", function () {
        div.onmousemove = function (event) {
            var x = event.offsetX;
            var y = event.offsetY;
            circle.translation.set(x, y);
            two.update();
        };
    }).play();
</script>

</body>
</html>

效果圖:      
圓點自動跟随滑鼠移動 - MrZWJ

發表于

2018-11-30 22:34 

MrZWJ 

閱讀(872) 

評論(0) 

編輯 

收藏 

舉報