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:
|
<<: In-depth analysis of the Identifier Case Sensitivity problem in MySQL
>>: Detailed explanation of two ways of Linux service management: service and systemctl
Table of contents 1minio is simple 2 Docker build...
Many times, we ignore the setting of the web page ...
Table of contents Implementing an irregular form ...
1. Create a project with vue ui 2. Select basic c...
The upload form with image preview function, the ...
Table of contents 1. Install Docker 2. Write code...
1. Import the basic style of external CSS files U...
Table of contents 1. Preparation 2. Deployment Pr...
1 Background Recently, some performance issues ha...
meta is an auxiliary tag in the head area of htm...
Because I wrote a Python program and intensively ...
Table of contents Overview The history of CPU-bou...
This article will introduce a very interesting at...
When using Animation.css, I found that the font o...
background Navicat is the best MySQL visualizatio...