Realize super cool water light effect based on canvas

Realize super cool water light effect based on canvas

This article example shares with you the specific code for implementing a super cool water light effect based on canvas for your reference. The specific content is as follows

<!DOCTYPE html>  
<html>  
<head>  
    <meta charset="UTF-8">  
    <title>Super cool water light effect based on canvas</title>  
    <style>
        *{
            margin: 0;
            padding: 0;
        }
        canvas{
            border: 1px solid red;
            width: 100%;
            height: 100%;
        }
    </style>
</head>  
<body onselectstart="return false">  
        <!-- Add the canvas tag and add a red border to make it easier to see on the page-->  
        <canvas id="myCanvas" >  
        Your browser does not support the canvas tag.   
        </canvas>
<script src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
<script type="text/javascript">
    var canvas = document.getElementById("myCanvas");  
    var ctx = canvas.getContext("2d");    
    var cx1 = canvas.offsetLeft;
    var cy1 = canvas.offsetTop;
    var cx2 = canvas.offsetLeft + canvas.offsetWidth;
    var cy2 = canvas.offsetTop + canvas.offsetHeight;
    var bbox = canvas.getBoundingClientRect();  
    $(function(){
        var direction = 'right',x = y = right_count = down_count = left_count = up_count = 0;
        ctx.beginPath(); //Start a new drawing path ctx.moveTo(x, y); //Define the starting point coordinates of the line as (0,0)
        setInterval(function(){
            ctx.strokeStyle = '#'+Math.floor(Math.random()*16777215).toString(16);
            switch(direction){
                case 'right':
                    if(x >= 300 - right_count){
                        direction = 'down';    
                        right_count++;
                    }else{
                        x++;
                    }
                    break;
                case 'down':
                    if(y >= 150 - down_count){
                        direction = 'left';
                        down_count++;
                    }else{
                        y++;
                    }
                    break;
                case 'left':
                    if(x <= left_count){
                        direction = 'up';
                        left_count++;
                    }else{
                        x--;
                    }
                    break;
                case 'up':
                    if(y <= up_count + 1){
                        direction = 'right';
                        up_count++;
                    }else{
                        y--;
                    }
                    break;
            }
            ctx.lineTo(x, y);
            ctx.lineCap = 'round';
            ctx.lineWidth = 1; //Set the width of the line segment ctx.stroke(); //Draw a straight line along the path of the coordinate point sequence }, 1);
    }) 
</script>  
</body>  
</html>

Effect screenshots:

The running lights are always running, and they are mainly circling here.

The above is the full content of this article. I hope it will be helpful for everyone’s study. I also hope that everyone will support 123WORDPRESS.COM.

You may also be interested in:
  • Canvas realizes searchlight effect

<<:  In-depth analysis of the Identifier Case Sensitivity problem in MySQL

>>:  Detailed explanation of two ways of Linux service management: service and systemctl

Recommend

The difference between HTML iframe and frameset_PowerNode Java Academy

Introduction 1.<iframe> tag: iframe is an i...

In-depth understanding of umask in new linux file permission settings

Preface The origin is a question 1: If your umask...

MYSQL master-slave replication knowledge points summary

An optimization solution when a single MYSQL serv...

Teach you how to use docker-maven-plugin to automate deployment

1. Introduction to docker-maven-plugin In our con...

MySQL transaction autocommit automatic commit operation

The default operating mode of MySQL is autocommit...

Markup Language - Print Style Sheets

Click here to return to the 123WORDPRESS.COM HTML ...

Summary of Vue watch monitoring methods

Table of contents 1. The role of watch in vue is ...

A line of CSS code that crashes Chrome

General CSS code will only cause minor issues wit...

Summary of mysqladmin daily management commands under MySQL (must read)

The usage format of the mysqladmin tool is: mysql...

Detailed tutorial on deploying Django project using Docker on centos8

introduction In this article, we will introduce h...

Vue implements the full selection function

This article example shares the specific code of ...

Where is mysql data stored?

MySQL database storage location: 1. If MySQL uses...