Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8" />
    <meta name=viewport content="width=device-width, initial-scale=1">
    <title>Document</title>
    <style type="text/css">
        body{
            background-color:black;
            overflow: hidden;
        }
    </style>
</head>
<body>
    <canvas>

    </canvas>
</body>
</html>
<script type="text/javascript">
    var mycanvas = document.getElementsByTagName("canvas")[0];
    var ctx = mycanvas.getContext("2d");
    //动态获取窗口的大小
    mycanvas.width = document.documentElement.clientWidth;
    mycanvas.height = document.documentElement.clientHeight;
    window.onresize = function(){
        mycanvas.width = document.documentElement.clientWidth;
        mycanvas.height = document.documentElement.clientHeight;
    }
    var BallsArr = [];
    function Ball(x,y){
        this.x = x;
        this.y = y;
        this.r = 30;
        this.color = "rgba(" + parseInt(Math.random()*256)  + "," + parseInt(Math.random()*256)  + "," + parseInt(Math.random()*256)  + "," + 0.8;
        this.dx = parseInt(Math.random() * 10) - 5;
        this.dy = parseInt(Math.random() * 10) - 5;
        BallsArr.push(this);
    }
    Ball.prototype.render = function(){
        ctx.beginPath();
        ctx.arc(this.x,this.y,this.r,0,Math.PI * 2,true);
        ctx.closePath();
        ctx.fillStyle = this.color;
        ctx.fill();
    }
    Ball.prototype.update = function(){
        this.x += this.dx;
        this.y += this.dy;
        this.r--;
        if(this.r < 0){
            this.godie();
        }
    }
    Ball.prototype.godie = function(){
        for (var i = 0; i < BallsArr.length; i++) {
            if(BallsArr[i] == this){
                BallsArr.splice(i,1);
            }
        };
    }
    mycanvas.onmousemove = function(event){
        new Ball(event.clientX,event.clientY);
    }
    // 手指移动事件
    mycanvas.addEventListener("touchmove",function(event){
        event.preventDefault();
        var finger = event.touches[0];
        new Ball(finger.clientX,finger.clientY);
    },true)

    setInterval(function(){
        ctx.clearRect(0,0,mycanvas.width,mycanvas.height);
        for (var i = 0; i < BallsArr.length; i++) {
            BallsArr[i] && BallsArr[i].render();
            BallsArr[i].update();
        };
    },20)
</script>

测试地址:http://web0x01.com/test/color...
效果是手指滑动屏幕出现炫彩小球,PC端chrome浏览器的模拟iPhone都是正常的,还有安卓手机也是可以,就是iOS设备都不行。


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
381 views
Welcome To Ask or Share your Answers For Others

1 Answer

移动端把.onmouse替换成touch事件试试


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
...