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
Introduction 1.<iframe> tag: iframe is an i...
Preface The origin is a question 1: If your umask...
Table of contents Preface 1. Nginx+Tomcat 2. Conf...
An optimization solution when a single MYSQL serv...
Table of contents Effect demonstration:Main JS co...
1. Introduction to docker-maven-plugin In our con...
The default operating mode of MySQL is autocommit...
Click here to return to the 123WORDPRESS.COM HTML ...
Table of contents 1. The role of watch in vue is ...
General CSS code will only cause minor issues wit...
The usage format of the mysqladmin tool is: mysql...
introduction In this article, we will introduce h...
This article example shares the specific code of ...
MySQL database storage location: 1. If MySQL uses...
The layui table has multiple rows of data. Throug...